以人类可读的格式在SQL中排序

时间:2013-09-22 06:41:57

标签: mysql sql sql-order-by

我在mySql数据库中有一些IP地址。我想通过SQL ORDER BY以升序模式对它们进行排序。但SQL在机器可读的模式下对它们进行排序,我希望按人类可读的方式进行排序。

它像我一样安排我的IP:

91.99.102.209
91.99.102.213
91.99.102.233
91.99.102.33
91.99.102.37
91.99.102.53
91.99.102.69
91.99.102.9

但我想要像下面那样:

91.99.102.9
91.99.102.33
91.99.102.37
91.99.102.53
91.99.102.69
91.99.102.209
91.99.102.213
91.99.102.233

我该怎么做?

2 个答案:

答案 0 :(得分:2)

对于您的情况,这应该有效:

SELECT ip_addr_str
FROM mytable
ORDER BY inet_aton(ip_addr_str)

答案 1 :(得分:1)

使用INET_ATON

SELECT * FROM your_table
ORDER BY INET_ATON(ip_address);