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

0

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

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

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'
  • 0
    Эти символы ' (примечание: это не обычные одинарные кавычки!) Тоже в вашем исходном запросе или это просто произошло, когда вы скопировали его сюда? (Вы случайно не написали запрос в редакторе офисных документов, таком как Microsoft Word?)
  • 1
    Является ли тег MySQL правильным? Больше похоже на SQL Server?
Теги:
select
set
sql-update
sql-like

1 ответ

0

Вы можете попробовать такой запрос:

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'

Ещё вопросы

Сообщество Overcoder
Наверх
Меню