2016-08-09 9 views
0

カラム値にまだ値がない場合は、それに基づいて文字列を追加してカラム値を更新しようとしています。私はそれが正しいと思ったが、それを働かせることができなかった。私が間違った方向に向いているかどうかを誰かが理解できるように助けることができますか?これを行うより良い方法があれば私に見せてもらえれば幸いです。私が正しく理解していれば'CASE'に基づいて 'concat()'値を使用してMySQLのクエリを更新できません。

$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'); 
+0

?なぜあなたはMySQLとPL/SQL(後者はOracle DBに関連しています)で質問にタグ付けしましたか? –

答えて

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%'; 
+0

@Gordonが条件を動かすことに感謝します。しかし、問題はそれを行うことによって消え去っていませんでした。問題は、カラム名を{my_column}だけで使用してテーブル名を{my_table .my_column}に固定してカラムを使用することです。同じ問題を抱えている人に役立つことを願っています。 –

関連する問題