如何过滤存储为varchar

时间:2017-01-15 21:18:45

标签: mysql

我有用户表,其中包含用户名和IP地址。

假设我需要IP地址介于5.101.108.0和5.101.108.255之间的所有数据

如何为IP编写查询,因为IP存储在varchar中。我是否需要使用正则表达式,因为我必须在5.101.108之后进行过滤。 ?

您能否提供样本解决方案,因为我无法思考如何过滤。感谢。

1 个答案:

答案 0 :(得分:6)

您可以使用INET_ATON()INET_NTOA()在IP字符串和整数表示之间进行转换:

SELECT *
  FROM ip_addresses
 WHERE INET_ATON(ip_address) BETWEEN INET_ATON('5.101.108.0') AND INET_ATON('5.101.108.255');