2012-03-22 10 views
0

単一のクエリを使用してフィールドを正規化するための更新方法はありますか?MySQLで単一のUPDATEを使用してフィールドを正規化する

例:

UPDATE person SET name = REPLACE(name, 'á', 'a'); 
UPDATE person SET name = REPLACE(name, 'é', 'e'); 
UPDATE person SET name = REPLACE(name, 'í', 'i'); 
UPDATE person SET name = REPLACE(name, 'ó', 'o'); 
UPDATE person SET name = REPLACE(name, 'ú', 'u'); 
+0

たぶん、あなたは、SQLマルチ置き換える機能を記述することができます。 – biziclop

+1

mysqlでユーザ定義のregex replace関数を調べることができます。 http://stackoverflow.com/questions/1755408/mysql-regex-replace – Gohn67

答えて

1

それは単一のクエリで行うことができるように、チェーン、呼び出しを置き換えることができます。

UPDATE person SET name = REPLACE(REPLACE(REPLACE(name, 'á', 'a'), 'é', 'e'), 'í', 'i') 

しかし、これはすぐにunmaintainable混乱になります。アクセント付きの文字をアクセントのない同等のものに置き換えるだけの場合は、おそらく文字セットの変更が多くなるでしょう。

0

すべてのアルファベットを置き換えたいと思っている場合は、このように置き換えてください。 第1列などの2つの列が「á」で構成され、第2の「a」が全体として同様に1つの表を作成できます。 し、新しいテーブルの各行をフェッチして置換を実行するプロシージャを作成します。

関連する問題