mysql-using update/set with like

mqkwyuun  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(382)

我正在尝试使用另一个表中的命名约定更新一个表中名为“name”的列。
我下面的脚本不起作用,我不太清楚为什么。。。要么是语法错误,要么是我尝试的另一种方法,结果所有的'name'都是空的:

UPDATE table1
SET Name = 
ISNULL(
    (SELECT TOP 1 CorrectSSPname
    FROM table2
    WHERE UPPER(Name) LIKE  '%’ + UPPER(WrongSSPname) + ‘%')
    , Name
    )
WHERE DATE >=  '2018-07-01'

我可以使用下面的脚本进行单个更新,但无法使用上面的脚本进行多个更新:

UPDATE table1
SET Name = 'xxx'
WHERE Name like 'yyy'
6yjfywim

6yjfywim1#

您可以尝试这样的查询:

UPDATE tabel1 tbl1
LEFT JOIN table2 tbl2 ON UPPER(tbl2.WrongSSPname) LIKE CONCAT('%', UPPER(tbl1.Name), '%')
SET tbl1.Name = tbl2.CorrectSSPname
WHERE tbl1.DATE >= '2018-07-01'

相关问题