スポンサーリンク

【MySQL】update when caseを使おうとしてハマったこと

case文についてはこちら参照

update table1 set need_point=case when disp_id=:disp_id0 then :need_point0 when disp_id=:disp_id1 then :need_point1 end;

これだとcase条件に入らないもののneed_pointはすべてnullで更新されてしまう

こちらの記事を参考にして修正

僕は条件に入らないものはそのままにしておきたかったので以下のように修正

update table1 set need_point=case when disp_id=:disp_id0 then :need_point0 when disp_id=:disp_id1 then :need_point1 else need_point end;

もとのカラム値で更新するようにした

コメント

タイトルとURLをコピーしました