【问题标题】:MySQL Update concat field value only if it does not contain a stringMySQL 仅在不包含字符串时更新 concat 字段值
【发布时间】:2019-03-02 22:56:39
【问题描述】:

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

brand varchar(15)
descr varchar(100)

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

例如, 如果brand 的值为“vanilla”,而descr 的值为“choco”,则更新后desc 应变为“chocovanilla”

如果 brand 的值是“choco”,而 descr 的值是“choco”或“chocovanilla”,那么在更新后应该什么都不会改变,因为 desc 已经包含了 brand 中的值。

我有以下代码原型,但无法正常工作。

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


    【解决方案1】:

    您可以使用likeconcat()

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

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

    【讨论】:

      【解决方案2】:

      你需要like:

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

      【讨论】:

        猜你喜欢
        • 2013-08-09
        • 2014-10-11
        • 2018-10-27
        • 2014-11-26
        • 2012-11-21
        • 2019-03-12
        • 1970-01-01
        • 2014-04-18
        • 1970-01-01
        相关资源
        最近更新 更多