Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

ordem por .... números? Ajude-me a classificar endereços IP


Experimente o INET_ATON função
SELECT ip FROM sn_192_168_0
ORDER BY INET_ATON(ip);

De uma chance !!!

CAVEAT :É melhor não armazenar os valores INET_ATON. Existem algumas peculiaridades anteriores com essa função, você tem números inválidos entre os pontos e a chama em gatilhos.

Esses bugs estão limpos agora.

Endereços IP curtos são tratados adequadamente. Aqui está um exemplo do MySQL 5.5.12 no Windows 7
mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1');
+------------------------+--------------------+
| INET_ATON('127.0.0.1') | INET_ATON('127.1') |
+------------------------+--------------------+
|             2130706433 |         2130706433 |
+------------------------+--------------------+
1 row in set (0.05 sec)