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

问题描述 投票:1回答:2

我有一个包含以下列的表(等等)。

brand varchar(15)
descr varchar(100)

要求是检查“descr”中存在的现有字符串,如果该字符串不包含品牌列的值,则附加到它

例如,如果品牌具有“香草”的价值并且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 update field in row if it doesn't contain value

mysql sql
2个回答
1
投票

你可以使用likeconcat()

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

这为品牌增加了空间以提高可读性。


0
投票

你需要like

update tbl set descr = concat(descr,brand) where descr not like concat('%', brand, '%');
© www.soinside.com 2019 - 2024. All rights reserved.