-2

mysqlでは、コマンド「SET」でフォークを作成することができますか?

このような:

UPDATE `table`.`data` SET `hits` = (`hits`-1<0 ? 0:`hits`-1) WHERE `data`.`id`='15';
4

1 に答える 1

2

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;
于 2012-07-25T22:09:00.230 に答える