我的 mysql 表有一个 cityname 列。 cityname 列中的值存在一些拼写错误。 city 的每个拼写错误都需要纠正。另一个表有一列包含所有正确的城市名称。根据该表,需要更正第一个表的拼写错误。我研究了 soundex 之类的东西,但找不到任何完成类似操作的链接。
TableA
+----+------------+----------+
| id | col1 | city_name |
+----+------------+----------+
TableB
+----+------------+--
| index |City_name |
+----+------------+--
我想到的方法是获取一个 SQL 查询,该查询从具有相似城市名称的行中创建单独的表。
完成后,再次使用 SQL 查询将错误的拼写替换为正确的拼写
最后将所有不同的表格合并为一个表格,其中所有拼写均已更正。
我正在寻找方法和 mysql 查询语法方面的建议
最佳答案
这将涉及一些手动工作,如果这是一次性的事情,为其构建前端可能不会有麻烦。
我要做的是:
- 生成所有拼写错误的列表。
- 根据 soundex 生成建议
- 手动浏览列表,手动选择正确的列表,并在每次修复时手动运行更新语句。
那么,如何做到这一点:
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 得到任何建议,或者得到多个选择,您必须自己解决这些问题。计算机没那么聪明。
关于mysql - 纠正基于mysql中另一个表的列中的拼写错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11157758/