以下是我的用于测试和构建查询的sqlfiddle:
http://sqlfiddle.com/#!2/975c6/1
我一直在尝试检测Table1列ADRES`house#240 st。 #76 Cantt。 road Chicago包含查找表中错误列中存在的任何值,应该被右列值替换。
表1:
Username | Adres Jhon | house# 240 st. # 76 Cantt. road Chicago
查找表:
WRONG | Right house# HNO
例如:house# 240 st. # 76 Cantt. road Chicago
(house#错误,因此应该被HNO取代)并更新Table 1
并将地址设置为
Jhon | HNO 240 st. # 76 Cantt. road Chicago
答案 0 :(得分: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`, '%')