0

私のmysqlテーブルにはcityname列があります。cityname 列の値にはスペルミスがあります。city のスペルミスはそれぞれ修正する必要があります。別のテーブルには、すべての正しい都市名を含む列があります。この表に基づいて、最初の表のスペルミスを修正する必要があります。私はsoundexのようなものを調べましたが、似たようなことをしたリンクは見つかりませんでした.

TableA 

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


TableB

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

私が念頭に置いているアプローチは、似たような都市名を持つ行から別のテーブルを作成するSQLクエリを取得することです。

これが完了したら、SQLクエリを使用して、間違ったスペルを正しいスペルに再度置き換えます

最後に、すべての異なる表を、すべてのスペルが修正された 1 つの表に結合します。

アプローチとmysqlクエリ構文の両方でアドバイスを探しています

4

1 に答える 1

3

多少の手作業が必要になりますが、これが 1 回限りの作業であれば、そのためのフロント エンドの構築は問題にならないかもしれません。

私がすることは次のとおりです。

  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 に答える