0

以下は、クエリをテストおよび構築するための私のsqlfiddleです。

http://sqlfiddle.com/#!2/975c6/1

私がやろうとしてきたのは、Table1 列 ADRES `house# 240 st. #76 カント。road Chicago には、ルックアップ テーブルの間違った列に存在する値が含まれており、正しい列の値に置き換える必要があります。

表1:

ユーザー名 | アドレス
ジョン | 家#240セント。#76 カント。道路シカゴ

ルックアップテーブル:

間違っている | 右
ハウス#HNO

例: house# 240 st. # 76 Cantt. road Chicago(house# が間違っているため、HNO に置き換える必要があります) 更新Table 1し、住所を次のように設定します。

ジョン | HNO 240 セント。#76 カント。道路シカゴ
4

1 に答える 1

1

フィールドを更新したい場合は、

 UPDATE table1 a CROSS JOIN lookup b
 SET    a.ADRES = REPLACE(a.ADRES, b.`WRONG`, b.`RIGHT`)
 WHERE  a.ADRES LIKE CONCAT('%', b.`WRONG`, '%')

ただし、置き換えられた値のみを射影したい場合は、

 SELECT  a.Username, REPLACE(a.ADRES, b.`WRONG`, b.`RIGHT`)
 FROM    table1 a CROSS JOIN lookup b
 WHERE   a.ADRES LIKE CONCAT('%', b.`WRONG`, '%')
于 2012-12-12T06:03:10.793 に答える