-1
如何根據以前的值更新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嘗試了上面的內容,但是當計數爲零時,它表示零行受到影響。結果應該是-1? – user962449 2012-01-06 22:02:08
是的。這將工作 - 但它會更新表中的每一行。這是你想要的嗎?如果沒有,那麼你應該在WHERE子句中指定要更新的行。 – 2012-01-06 22:04:51
它取決於列類型:-1表示有符號整數(允許爲負數),0表示無符號整數(不允許爲負數)。 – CedX 2012-01-06 22:05:07