0

我的 mysql 表有一个 cityname 列。cityname 列中的值有一些拼写错误。城市的每一个拼写错误都需要纠正。另一个表有一列包含所有正确的城市名称。根据此表,需要更正第一个表的拼写错误。我研究了 soundex 之类的东西,但找不到任何类似的链接。

TableA 

+----+------------+----------+
| id | col1      | city_name   |
+----+------------+----------+


TableB

+----+------------+--
| index |City_name      |
+----+------------+--

我想到的方法是获取一个 sql 查询,该查询从具有相似发音城市名称的行中创建单独的表。

一旦完成,再次使用 sql 查询将错误的拼写替换为正确的拼写

最后将所有不同的表格组合成一个带有所有更正拼写的表格。

我正在寻找方法和mysql查询语法的建议

4

1 回答 1

3

这将涉及一些手动工作,如果这是一次性的事情,为其构建前端可能不是问题。

我会做的是以下几点:

  1. 生成所有拼写错误的列表。
  2. 根据 soundex 生成建议
  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 获得任何建议,或者获得多项选择,您必须自己解决这些问题。电脑没那么聪明。

于 2012-06-22T14:14:26.427 回答