MySQL Update значение поля concat, только если оно не содержит строку - PullRequest
0 голосов
/ 02 марта 2019

У меня есть таблица со следующими столбцами (среди прочих).

brand varchar(15)
descr varchar(100)

Требуется проверить существующую строку, которая существует в «descr», и если она НЕ содержит значение столбца бренда, тодобавить к нему

Например, если бренд имеет значение «vanilla», а descr имеет значение «choco», то после обновления desc должен стать «chocovanilla»

, если бренд имеет значение «choco "и descr имеют значение" choco "или" chocovanilla ", то после обновления ничего не должно измениться, поскольку у desc уже есть то, что есть в бренде.

У меня есть следующий прототип кода, но я не могу заставить его работать.

update tbl set descr= concat(descr,'value from brand col') where descr not contain 'value from brand col';

Пожалуйста, дайте мне знать, если это можно настроить в соответствии с потребностями.

Я видел этот поток, но он не подходит: Поле обновления MySQL в строке, если ононе содержит значения

Ответы [ 2 ]

0 голосов
/ 02 марта 2019

Вам нужно like:

update tbl set descr = concat(descr,brand) where descr not like concat('%', brand, '%');
0 голосов
/ 02 марта 2019

Вы можете использовать like и concat():

update tbl
    set descr = concat(descr, ' ', brand)
    where descr not like concat('%', brand, '%');

Это добавляет пробел перед маркой для удобства чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...