根据mysql中的另一个表更正列中的拼写错误

时间:2012-06-22 14:04:02

标签: mysql sql soundex spelling

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

TableA 

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


TableB

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

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

完成此操作后,使用sql查询再次使用正确的拼写替换错误的拼写

最后将所有不同的表组合成一个包含所有修正拼写的表格。

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

1 个答案:

答案 0 :(得分:3)

这将涉及一些手工工作,如果这是一次性事情,建立一个前端可能不是麻烦。

我将做的是以下内容:

  1. 生成所有拼写错误的列表。
  2. 根据soundex
  3. 生成建议
  4. 手动浏览列表,手动选择正确的列表,并在每次修复时手动运行更新语句。
  5. 那么,怎么做:

    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获得任何建议,也无法获得多项选择,您必须自行解决这些问题。计算机并不那么聪明。