2012-01-06 138 views
-1

如何根據以前的值更新mysql中的字段?基於字段值的mysql更新行

讓我們說count等於3

UPDATE MY_TABLE SET count = count-1 

請問這項工作?所以計數的新值將是4

+0

此外,我該如何添加負數?我用count-1嘗試了上面的內容,但是當計數爲零時,它表示零行受到影響。結果應該是-1? – user962449 2012-01-06 22:02:08

+0

是的。這將工作 - 但它會更新表中的每一行。這是你想要的嗎?如果沒有,那麼你應該在WHERE子句中指定要更新的行。 – 2012-01-06 22:04:51

+0

它取決於列類型:-1表示有符號整數(允許爲負數),0表示無符號整數(不允許爲負數)。 – CedX 2012-01-06 22:05:07

回答

0

您是否意指行或表?如果你的意思是插入或更新一行,你可以使用triggers

0

我試了一下,它的工作,所以也許你需要向我們展示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)