有沒有辦法從 mysql 的表中洗掉幾乎相同的值?我的表有超過 10K 的記錄,其中一家公司看起來像這樣:
id name
123 Vianet Group Inc
5214 Vianet Group, Inc.
在使用describe tablename我得到這個:
Field Type Null Key Default Extra
id int NO PRI auto_increment
name varchar(150) NO UNI
公司名稱相同,但是我想從表中洗掉第二個實體,從而在表中只保留該名稱的一個實體。這只是一個實體,還有其他類似的實體。有沒有一種快速的方法可以從列中洗掉相同的值?請幫忙。
uj5u.com熱心網友回復:
您可以嘗試使用 soundex 來查找“幾乎相同”的值 -
SELECT *
FROM tablename t1
INNER JOIN tablename t2
ON t1.id < t2.id
AND SOUNDEX(t1.name) = SOUNDEX(t2.name)
您將需要使用您的一些示例“幾乎相同”的值對其進行測驗,以查看它的作用和不作用。正如 Akina 所建議的那樣,您可能需要進行某種標準化程序(存盤函式)或由 Slava 鏈接的 Levenshtein 距離函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/370201.html
