mysql - 按……数字订购?帮我排序ip地址

标签 mysql

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

最佳答案

试试 INET_ATON功能

SELECT ip FROM sn_192_168_0
ORDER BY INET_ATON(ip);

试一试!!!

注意:最好不要存储 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)

关于mysql - 按……数字订购?帮我排序ip地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719945/

相关文章:

mysql - 在 WHERE 和 AND 上使用 "not in"?

php - 增加数据库中的字段

mysql - 查询不匹配多个条件

mysql - 从另一个字段中减去一个字段,但子查询创建了 1 个字段

mysql - 如何处理 MySQL 中的可选字段?

java - SQL 仅替换为一行中的前两列

php - MySQL 插入,除非 col1 和 col2 都相同,然后更新另一列

mysql - 仅从表中选择字段名称,而不选择 information_schema

MySql - 在 ORDER BY 查询中舍入为 10

php - 如何跟踪 php-fpm 使用过多 CPU 的原因