Q184:MySQLでのCASE文
A184:
手元のPCで試してみたところ
@UPDATE table SET delflag= CASE WHEN keikaku-jisseki=0 THEN 0 ELSE 1 END
または
AUPDATE table SET delflag= CASE WHEN keikaku-jisseki=0 THEN 0 WHEN keikaku-jisseki>0 THEN 1 ELSE delflag END
で実行できました。
@の文では計画数と実績の差が「0かそれ以外か」の意味になります。Aでは「0」,「0より大きい」,「それ以外」の意味です。
「else 項目名」 で元々入っていた値をそのまま残す意味になります。
「else ○○」がないと、条件に合わない所は値が消えてしまうようです。
「else 3」など普通に値を入れても大丈夫です。