-1
在mysql中,可以在命令「SET」中創建一個分支?Fork inline Mysql
像這樣:
UPDATE `table`.`data` SET `hits` = (`hits`-1<0 ? 0:`hits`-1) WHERE `data`.`id`='15';
在mysql中,可以在命令「SET」中創建一個分支?Fork inline Mysql
像這樣:
UPDATE `table`.`data` SET `hits` = (`hits`-1<0 ? 0:`hits`-1) WHERE `data`.`id`='15';
使用IF
function:
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;
看來奇怪的,你會想減一ID,然後如果結果是肯定的,用零。 ID通常是積極的。甚至陌生人,你有一個要求id爲15的where子句,所以你肯定知道id-1不會是負面的。你確定你的僞代碼是正確的嗎? – 2012-07-25 22:12:06
只是一個例子,不用擔心。我錯誤地把'id'放在FORK – 2012-07-27 18:34:28
之內因爲反對票?我不明白? – 2015-01-07 16:22:00