我有一个表,其中列如下。
brand varchar(15)
descr varchar(100)
要求是检查存在于“DISCR”中的现有字符串,如果它不包含品牌列的值,则追加到它。
例如,
如果品牌有“香草”的价值,而descr有“巧克力”的价值,那么更新后desc应该变成“巧克力尼拉”
如果品牌具有“choco”的价值,而descr具有“choco”或“chocovanilla”的价值,那么在更新之后,任何东西都不应该改变,因为desc已经拥有了品牌中的内容。
我有以下代码原型,但无法使其工作。
update tbl set descr= concat(descr,'value from brand col') where descr not contain 'value from brand col';
请让我知道,如果这个可以调整,以适应需要。
我看到这条线,但不合身:MySQL update field in row if it doesn't contain value
最佳答案
您可以使用like
和concat()
:
update tbl
set descr = concat(descr, ' ', brand)
where descr not like concat('%', brand, '%');
这在品牌前增加了一个空间,以便于阅读。
关于mysql - MySQL Update concat字段值仅在不包含字符串的情况下,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54959612/