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