Как это сделать в MySQL: если значение поля> 0, то минус один, иначе пусть будет - PullRequest
4 голосов
/ 22 февраля 2010
UPDATE tbl SET counts=counts-1 ...

Ответы [ 3 ]

9 голосов
/ 22 февраля 2010

Если count - единственный столбец, который вы обновляете (или у вас нет других критериев, указанных в предложении where), то вы можете просто сделать это в предложении where

UPDATE [Table] SET counts = counts - 1 WHERE counts > 0;

Однако, если вы обновляете другие столбцы в том же запросе, это не сработает. Но у вас есть варианты

UPDATE [Table] SET counts = MAX(counts - 1, 0);

или

UPDATE [Table] SET counts = CASE WHEN counts > 0 THEN counts - 1 ELSE 0 END;
6 голосов
/ 22 февраля 2010
UPDATE tbl 
SET counts=counts-1 
WHERE counts > 0
0 голосов
/ 02 мая 2013

благодаря @Peter Bailey

это пример с селектором WHERE.

UPDATE [tbl_multimedia] SET [m_publish] = CASE WHEN [m_publish] = 0 THEN '1' ELSE '0' END WHERE id='1'

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...