Как обновить поле в mysql на основе предыдущего значения?строка обновления mysql на основе значения поля
Допустим, что count
равна 3.
UPDATE MY_TABLE SET count = count-1
Будет ли это работать? поэтому новое значение счета будет 4
Как обновить поле в mysql на основе предыдущего значения?строка обновления mysql на основе значения поля
Допустим, что count
равна 3.
UPDATE MY_TABLE SET count = count-1
Будет ли это работать? поэтому новое значение счета будет 4
Возможно, вы имели в виду строку или стол? Если вы имеете в виду вставить или обновить строку, вы можете использовать triggers.
Я дал ему попробовать, и это сработало, поэтому, возможно, вам нужно показать нам инструкцию CREATE для таблицы. Результаты тестов:
mysql> create table aint (count int not null default 0);
Query OK, 0 rows affected (0.25 sec)
mysql> insert into aint VALUES(1);
Query OK, 1 row affected (0.06 sec)
mysql> select * from aint;
+-------+
| count |
+-------+
| 1 |
+-------+
1 row in set (0.00 sec)
mysql> update aint set count = count-1;
Query OK, 1 row affected (0.06 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from aint;
+-------+
| count |
+-------+
| 0 |
+-------+
1 row in set (0.00 sec)
mysql> update aint set count = count-1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from aint;
+-------+
| count |
+-------+
| -1 |
+-------+
1 row in set (0.00 sec)
И как я могу добавить отрицательные числа? Я попробовал выше с count-1, но он говорит, что нулевые строки затронуты, когда count равен нулю. Результат должен быть -1? – user962449
Да. Это будет работать, однако оно обновит каждую строку в таблице. Это то, что вы намереваетесь? Если нет, то вы должны указать строку, которую хотите обновить, в предложении WHERE. –
Это зависит от типа столбца: -1 для целого числа со знаком (отрицательные значения разрешены), 0 для целых чисел без знака (отрицательные значения недопустимы). – CedX