MySQL,尝试按顺序获取IP地址列表。
此查询
select ip from sn_192_168_0
给出了这个
192.168.0.1
192.168.0.10
192.168.0.100
192.168.0.101
我们想要
192.168.0.1
192.168.0.2
...snip..
192.168.0.10
答案 0 :(得分:17)
尝试INET_ATON功能
SELECT ip FROM sn_192_168_0
ORDER BY INET_ATON(ip);
试一试!!!
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)
答案 1 :(得分:0)
你可以使用
SELECT ip FROM sn_192_168_0 ORDER BY LPAD( ip, 16, 0 )
数字16是ip的最大长度