的MySQL不會減少我等於0時
UPDATE topic SET liked = liked - 1 WHERE id='$id'
當liked
是0
它不會遞減。
當liked
爲0
時,我爲了減小字段liked
而需要做什麼?
注:它的工作原理,當它不爲0
編輯:liked
爲int。
的MySQL不會減少我等於0時
UPDATE topic SET liked = liked - 1 WHERE id='$id'
當liked
是0
它不會遞減。
當liked
爲0
時,我爲了減小字段liked
而需要做什麼?
注:它的工作原理,當它不爲0
編輯:liked
爲int。
需要將liked
列設置爲SIGNED。
例如。
ALTER TABLE `tbl` CHANGE `liked` `liked` INT(10) SIGNED
據我可以看到,從Navicat它已經簽署。無論如何,我已經成功運行了代碼,但沒有任何效果。它只在整數不爲0的情況下有效。 – ilhan 2011-12-27 14:46:46
你想要樓層爲零嗎?
UPDATE topic SET liked = liked - 1 WHERE id='$id' AND liked > 0;
如果你想負數,你當然需要的SIGNED datatype。但是,您需要了解限制以避免錯誤。見"Out-of-Range and Overflow Handling"
因此,假如喜歡改爲SIGNED TINYINT
...
UPDATE topic SET liked = liked - 1 WHERE id='$id' AND liked > -128;
如果使用UNSIGNED
整數它不能低於0,但如果我有ü正確的 - 你可以當它是低於0值下降?如果是這樣,你有沒有嘗試引用值?也許這就是MySQL等於0到NULL的問題?嘗試像這樣:
`liked` = (`liked` - 1)
如果它不是0,則它爲-1。例如,如果我有5,則它變成-1。當沒有撇號時,它對任何數字都沒有影響。 – ilhan 2011-12-27 14:55:30
好吧,我已經檢查了一切,當它是SIGNED INT時它工作正常,這是測試代碼:UPDATE'test' SET liked = liked - 1 WHERE 1,如果你把第二個喜歡的引號用這樣的:'liked' - then你會得到錯誤的結果 – 2011-12-27 17:10:53
can'like' be negative?它的數據類型是什麼? – 2011-12-27 14:29:30
確保'喜歡'不是無符號的。 – 2011-12-27 14:29:46
哪個數據類型被「喜歡」定義爲? – Aaron 2011-12-27 14:30:08