按数字排序?帮我排序ip地址

Aar*_*son 6 mysql

MySQL,尝试按顺序获取IP地址列表.

这个查询

select ip from sn_192_168_0 
Run Code Online (Sandbox Code Playgroud)

给出这个

192.168.0.1
192.168.0.10
192.168.0.100
192.168.0.101
Run Code Online (Sandbox Code Playgroud)

我们想要

192.168.0.1
192.168.0.2
...snip..
192.168.0.10
Run Code Online (Sandbox Code Playgroud)

Rol*_*DBA 17

尝试INET_ATON功能

SELECT ip FROM sn_192_168_0
ORDER BY INET_ATON(ip);
Run Code Online (Sandbox Code Playgroud)

试试看 !!!

CAVEAT:最好不要存储INET_ATON值.这个函数有一些过去的怪癖,你在点之间有无效的数字,并在触发器中调用它.

现在清理这些错误.

正确处理短IP地址.以下是Windows 7中MySQL 5.5.12的示例

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)
Run Code Online (Sandbox Code Playgroud)