MySQL - Использование update / set с похожими значениями из нескольких таблиц - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь обновить один столбец с именем 'Name' в одной таблице, используя соглашения об именах из другой таблицы.

Мой скрипт ниже не работает, и я не совсем уверен, почему ... Либо получаю синтаксическую ошибку, либо другим способом, которым я пытался это сделать, я получаю все имя в виде NULL:

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

Я могу заставить 'like' работать, используя следующий скрипт для одного обновления, но не могу выполнить несколько обновлений, используя скрипт выше:

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

1 Ответ

0 голосов
/ 02 июля 2018

Вы можете попробовать запрос, подобный этому:

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'
...