2017-03-01 295 views
1

這裏比較是SQL數據庫表中的IPV6地址, 我想比較這兩個IPv6地址 從範圍:2002:4559:1FE2:4559:1FE2:21E3:F3E3: 0051
To範圍:2002:4559:1FE2:4559:1FE2:21E3:F3E3:0055
需要比較這些地址,然後更新 要在table.Please幫助範圍地址的範圍從地址如何IPV6地址在SQL

+0

還有比這另外兩個選項?在未來?或者只有兩個地址來做出這個範圍? – Whencesoever

回答

1

如果您使用MySQL> 5.6.3,則可以使用INET6_ATON將字符串轉換爲VARBINARY(16)並將其用於範圍檢查?如果這些地址都以統一的方式存儲,則字典字符串比較也可能適用於您。

參見Storing IPv6 Addresses in MySQL

+0

感謝您的回覆,但我沒有讓你的先生,Could你plz寫一個querey而不是 –

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) 
+0

這個MD5比較IPV6地址? –

+0

我得到一個錯誤,如MD5無效標識 –

+0

你正在使用哪個數據庫? – narendra