如何比较SQL

时间:2017-03-01 07:36:37

标签: mysql sql database ipv6 ipv4

这是SQL数据库中表中的IPV6地址, 我想比较这两个IPV6地址 范围:2002:4559:1FE2:4559:1FE2:21E3:F3E3:0051
至范围:2002:4559:1FE2:4559:1FE2:21E3:F3E3:0055
需要比较这些地址然后更新 将地址范围扩展到该表中的From范围地址。请帮助

2 个答案:

答案 0 :(得分:1)

如果您使用的是MySQL> 5.6.3,则可以使用INET6_ATON将字符串转换为VARBINARY(16)并将其用于范围检查?如果这些地址都以统一的方式存储,那么词典字符串比较也可能对您有用。

另见Storing IPv6 Addresses in MySQL

答案 1 :(得分:0)

计算两个范围的MD5 128位校验和,并比较校验和而不是范围。值(校验和)以32个十六进制数字的字符串形式返回,如果参数为NULL,则返回NULL

示例查询:

UPDATE Table T1
SET T1.To_Range = T1.From_Range
WHERE MD5(T1.From_Range) !=  MD5(T1.To_Range)