2013-12-13 26 views
0

我也有类似的对这个问题的一个问题:更新双路(2-d)按顺序列在MySQL

updating columns with a sequence number mysql

不过,我也“有时”需要更新的第二列。例如,考虑这个表:

uID | X | Y 
1 | 6 | 0 
2 | 2 | 0 
3 | 7 | 0 
4 | 7 | 1 
5 | 3 | 0 
6 | 1 | 0 

我想“X”重新排序的顺序,我可以从链接的解决方案做的,上面:

SET @rank:=0; 
UPDATE `myTable` SET 
X = @rank:= @rank+1 
ORDER BY X 

但是,如果记录有Y值大于0我需要它的X被同时更新。作为二维值的Y值需要与其“X”保持一致。合理?所以我需要表格来结束:

uID | X | Y 
6 | 1 | 0 
2 | 2 | 0 
5 | 3 | 0 
1 | 4 | 0 
3 | 5 | 0 
4 | 5 | 1 

想法?

回答