[英]MySQL Update concat field value only if it does not contain a string
我有一个包含以下列(除其他外)的表格。
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 更新字段
您可以使用like
和concat()
:
update tbl
set descr = concat(descr, ' ', brand)
where descr not like concat('%', brand, '%');
这在品牌之前增加了一个空间以提高可读性。
你需要like
:
update tbl set descr = concat(descr,brand) where descr not like concat('%', brand, '%');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.