我的mysql表有一个cityname列。 cityname列中的值有一些拼写错误。每个城市的拼写错误都需要纠正。另一个表有一个包含所有正确城市名称的列。基于此表,需要更正第一个表的拼写错误。我研究了像soundex这样的东西,却找不到任何类似的东西。
TableA
+----+------------+----------+
| id | col1 | city_name |
+----+------------+----------+
TableB
+----+------------+--
| index |City_name |
+----+------------+--
我想到的方法是获取一个sql查询,该查询从具有类似发声城市名称的行中创建单独的表。
完成此操作后,使用sql查询再次使用正确的拼写替换错误的拼写
最后将所有不同的表组合成一个包含所有修正拼写的表格。
我正在寻找方法和mysql查询语法的建议
答案 0 :(得分:3)
这将涉及一些手工工作,如果这是一次性事情,建立一个前端可能不是麻烦。
我将做的是以下内容:
那么,怎么做:
SELECT * FROM TableA as orig
LEFT OUTER JOIN
TableB as correct
ON SOUNDEX(orig.city_name) = SOUNDEX(correct.city_name)
WHERE orig.City_name NOT IN (SELECT City_name FROM TableB)
并手动编写更新语句。您可能无法通过soundex获得任何建议,也无法获得多项选择,您必须自行解决这些问题。计算机并不那么聪明。