MySQL 仅当不包含字符串时才更新 concat 字段值

Aqu*_*lic 2 mysql sql

我有一个带有以下列(除其他外)的表格。

brand varchar(15)
descr varchar(100)
Run Code Online (Sandbox Code Playgroud)

要求是检查“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';
Run Code Online (Sandbox Code Playgroud)

请告诉我是否可以对此进行调整以满足需要。

我看到了这个线程,但它不适合:MySQL update field in row if it does not contains value

Gor*_*off 6

您可以使用likeconcat()

update tbl
    set descr = concat(descr, ' ', brand)
    where descr not like concat('%', brand, '%');
Run Code Online (Sandbox Code Playgroud)

这会在品牌前面添加一个空格以提高可读性。