我有用户表,其中包含用户名和IP地址。
假设我需要IP地址介于5.101.108.0和5.101.108.255之间的所有数据
如何为IP编写查询,因为IP存储在varchar中。我是否需要使用正则表达式,因为我必须在5.101.108之后进行过滤。 ?
您能否提供样本解决方案,因为我无法思考如何过滤。感谢。
答案 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');