我有一个带有以下列(除其他外)的表格。
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
您可以使用like和concat():
update tbl
set descr = concat(descr, ' ', brand)
where descr not like concat('%', brand, '%');
Run Code Online (Sandbox Code Playgroud)
这会在品牌前面添加一个空格以提高可读性。