mysqlでは、コマンド「SET」でフォークを作成することができますか?
このような:
UPDATE `table`.`data` SET `hits` = (`hits`-1<0 ? 0:`hits`-1) WHERE `data`.`id`='15';
mysqlでは、コマンド「SET」でフォークを作成することができますか?
このような:
UPDATE `table`.`data` SET `hits` = (`hits`-1<0 ? 0:`hits`-1) WHERE `data`.`id`='15';
IF
関数を使用します:
UPDATE `table`.`data`
SET `hits` = IF(`id` - 1 > 0, 0, `id` - 1)
WHERE `data`.`id`='15';
この特定のケースでは、を使用することもできますLEAST
。
UPDATE `table`.`data`
SET `hits` = LEAST(`id` - 1, 0)
WHERE `data`.`id`='15';
しかし、あなたのコードは間違っているようです。私はあなたがこれを書くつもりだったとほぼ確信しています:
UPDATE yourtable
SET hits = GREATEST(0, hits - 1)
WHERE id = 15;