我的mysql表有一個cityname列。 cityname列中的值存在一些拼寫錯誤。每個城市的拼寫錯誤都需要糾正。另一個表中有一列包含所有正確的城市名稱。根據這個表格,第一個表格的拼寫錯誤需要糾正。我研究了諸如soundex之類的東西,但找不到任何類似的鏈接。根據mysql中的另一個表更正列中的拼寫錯誤
TableA
+----+------------+----------+
| id | col1 | city_name |
+----+------------+----------+
TableB
+----+------------+--
| index |City_name |
+----+------------+--
我在腦海遇到的做法是,讓創建單獨的表中哪些有發音相似的城市名行的SQL查詢。
一旦做到這一點與那些正確再次使用一個SQL查詢
最後所有不同的表合併爲一個表的所有修正拼寫錯誤的替換拼寫。
我既在方法上,以及MySQL查詢語法尋求建議
你可能要考慮Levenstein距離,而不是SoundEx http://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance – spencer7593
查找Levenshtein距離。這是在20世紀60年代爲處理拼寫錯誤而開發的算法。這張貼可能會幫助你http://stackoverflow.com/questions/560709/levenshtein-distance-in-t-sql。 –
[這是另一個很好的問題](http://stackoverflow.com/questions/42013/levenshtein-distance-based-methods-vs-soundex)上使用Levenshtein距離而不是soundex。 –