我有一个带有列的MySQL表,我想为特定行数(其中id_sample ='2')自动递增+1值。你怎么看,我可以通过一个查询归档这个,或者我需要逐行更新:(。 我桌子的简短预览是:
+----------+----------+---------+
| 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 :(得分:3)
如果可以使用变量。这是一个解决方案:
SET @rownum=0;
UPDATE myTable SET degrees=(@rownum:=@rownum+1) WHERE id_sample='2';
答案 1 :(得分: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);