2013-03-04 72 views
1

我有一个MySQL列表,我想通过+1值自动增加特定行数(其中id_sample ='2')。你怎么想,我可以通过一个单一的查询归档此,或者我需要按行:(更新行 我的桌子的一小段内容是:如何在+1中自动增加特定行数的MySQL

+----------+----------+---------+ 
| id  | id_sample| degrees | 
+----------+----------+---------+ 
| 361  | 2  | 0 | 
| 362  | 2  | 0 | 
| 363  | 2  | 0 | 
| 364  | 2  | 0 | 
| 365  | 2  | 0 | 
| 366  | 2  | 0 | 
| ...  | .... | .... | 
+----------+----------+---------+ 

我要封存此:

+----------+----------+---------+ 
| id  | id_sample| degrees | 
+----------+----------+---------+ 
| 361  | 2  | 1 | 
| 362  | 2  | 2 | 
| 363  | 2  | 3 | 
| 364  | 2  | 4 | 
| 365  | 2  | 5 | 
| 366  | 2  | 6 | 
| ...  | .... | .... | 
+----------+----------+---------+ 

我尝试这个查询(参见下文),但我得到了所有行的增量:与相应的id_sample =“2”:

UPDATE myTable SET degrees=degrees+1 WHERE id_sample='2'; 
+0

@javaL - 读什么有人发帖将让你在这个行业很长的路要走。他**写道**他的代码没有做他所需要的。 – 2013-03-04 10:52:02

+0

@javaL - 我不明白你是无知的还是傻瓜,如果有人知道并提及它,告诉别人他们的代码将不起作用有什么意义? – 2013-03-04 10:54:52

+0

@ N.B。我给出了原因 – 2013-03-04 10:57:21

回答

3

如果你可以使用变量这里是一个解决方案:

SET @rownum=0; 
UPDATE myTable SET degrees=(@rownum:[email protected]+1) WHERE id_sample='2'; 

受此启发:Display Rownum issue MySQL

+0

谢谢大家。你为我节省了很多时间。我很快接受你的回答! – 2013-03-04 10:58:01

1
Update mytable a set a.degrees = (select nvl(max(b.degree),0)+1 from mytable b where a.id=b.id and b.id_sample=2); 
相关问题