遞增有一個表,現在添加一個新的列 - sort_num int default 0
如何通過組
id level sort_num
1 1 0
2 1 0
3 2 0
4 2 0
5 2 0
6 3 0
7 3 0
8 3 0
9 3 0
現在我想設置sort_num值象下面
id level sort_num
1 1 1
2 1 2
3 2 1
4 2 2
5 2 3
6 3 1
7 3 2
8 3 3
9 3 4
的Java代碼實現上述要求是
int sortNum = 0;
int currentLevel = fooList.get(0).getLevel();
for (RuleConf foo : fooList) {
if(currentLevel != foo.getLevel()){
sortNum = 0;
currentLevel = foo.getLevel();
}
foo.setSortNum(++sortNum);
}
我想知道,如果Java8
可以簡化上面的代碼?
PS。使用mysql
來實現此要求
set @index:=0; update t set sort_num = (@index:[email protected]+1) where level = 1 order by id;
set @index:=0; update t set sort_num = (@index:[email protected]+1) where level = 2 order by id;
set @index:=0; update t set sort_num = (@index:[email protected]+1) where level = 3 order by id;
如果你的意思是'Stream'而不是'Java 8',那麼我會說不。因爲有些國家依賴於已經看過的元素。 – Flown