Mysql
 sql >> Database >  >> RDS >> Mysql

ordinare per.... numeri? Aiutami a ordinare gli indirizzi IP

Prova INET_ATON funzione

SELECT ip FROM sn_192_168_0
ORDER BY INET_ATON(ip);

Provalo!!!

AVVERTENZA:è meglio non memorizzare i valori INET_ATON. Ci sono alcune stranezze del passato con questa funzione sono che hai numeri non validi tra punti e chiamarlo nei trigger.

Questi bug sono stati eliminati ora.

Gli indirizzi IP brevi vengono gestiti correttamente. Ecco un esempio da MySQL 5.5.12 in 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)