MySQL更新查询的'concat()'值基于'CASE'不起作用

时间:2016-08-09 01:35:40

标签: mysql

我正在尝试通过根据列值是否已经拥有它来将字符串附加到自身来更新列值。我以为我做得对,但无法让它发挥作用。有人可以帮助我理解我是否朝着错误的方向前进。如果有更好的方法可以告诉我,我也很感激。

使用my_database;

$additional_condition = 'string with special chars and quotes';

update my_table set my_column = concat(my_column, CASE WHEN my_column LIKE '%$additional_condition%' THEN $additional_condition ELSE '' END) where my_name in ('x', 'y');

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您应该将条件移到WHERE子句:

update my_table
    set my_column = concat(my_column, $additional_condition)
    where my_name in ('x', 'y') and
          my_column not like '%$additional_condition%';