主要問題是假設我現在有一個值存儲在數據庫= 26現在,如果用戶做了一些行動,我必須增加值1是否有任何預定義的方式在SQL中做到這一點。如何增加數據庫條目?
現在我正在提取值然後加1,然後再次更新條目。
主要問題是假設我現在有一個值存儲在數據庫= 26現在,如果用戶做了一些行動,我必須增加值1是否有任何預定義的方式在SQL中做到這一點。如何增加數據庫條目?
現在我正在提取值然後加1,然後再次更新條目。
是,運行SQL象下面這樣:
update yourTableName
set theColumnYouWant=theColumnYouWant+1
where yourConditions=YourConditionCriteria
更新語法的一個具體的例子:
mysql> select * from first;
+------+-------+
| bob | title |
+------+-------+
| 1 | aaaa |
| 2 | bbbb |
| 3 | cccc |
| 4 | NULL |
| 5 | eeee |
+------+-------+
5 rows in set (0.00 sec)
mysql> update first set bob=bob+1 where title='eeee';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from first;
+------+-------+
| bob | title |
+------+-------+
| 1 | aaaa |
| 2 | bbbb |
| 3 | cccc |
| 4 | NULL |
| 6 | eeee |
+------+-------+
5 rows in set (0.00 sec)
從Fluffeh答案給出的方法避免了併發性問題,當兩個單獨的會話當兩個會話拉同一個值並給它加1時,該值只會遞增1,而不會遞增2.使用來自Fluffeh的方法,可以保證每個會話都會增加值由1. – spencer7593