Home >Database >Mysql Tutorial >MySQL对IP地址进行排序

MySQL对IP地址进行排序

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-07 17:30:431499browse

利用mysql自带内置函数: INET_ATON(expr)Given the dotted-quad representation of a network address as a string, returns an

利用mysql自带内置函数:

INET_ATON(expr)
Given the dotted-quad representation of a network address as a string, returns an integer that represents the numeric value of the address. Addresses may be 4- or 8-byte addresses.
mysql> SELECT INET_ATON('209.207.224.40');
      -> 3520061480
The generated number is always in network byte order. For the example just shown, the number is calculated as 209×2563 + 207×2562 + 224×256 + 40.
INET_ATON() also understands short-formIPaddresses:
mysql> SELECT INET_ATON('127.0.0.1'), INET_ATON('127.1');
      -> 2130706433, 2130706433
Note: When storing values generated by INET_ATON(), it is recommended that you use an INT UNSIGNED column. If you use a (signed) INT column, values corresponding toIPaddresses for which the first octet is greater than 127 cannot be stored correctly. See Section 11.2, “Numeric Types”.

INET_NTOA(expr)
Given a numeric network address (4 or 8 byte), returns the dotted-quad representation of the address as a string.
mysql> SELECT INET_NTOA(3520061480);
      -> '209.207.224.40'

以上是Mysql手册中的说明,实际使用方法:

我的ip是以字符串形式存储在表table_ip的ip_info字段中,可以用下面的查询语句返回以ip排序的结果
select ip_info from table_ip order by inet_aton(ip_info);
结果:
192.168.6.10
192.168.6.60
92.168.6.120
92.168.6.240
...

推荐阅读:

数据量增加导致MySQL执行计划改变

MySQL数据库安全模式登陆

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn