您的位置:首頁技術文章
文章詳情頁

Mysql update 分組遞增 sql咨詢

瀏覽:90日期:2022-06-14 11:40:57

問題描述

idlevelsort_num110210320420520630730830930

要求得到

idlevelsort_num111212321422523631732833934

即頁面的展示順序如下

level1

1

2

level2

1

2

3

level3

1

2

3

4

目前的sql

set @index:=0; update t set sort_num = (@index:=@index+1) where level = 1 order by id;set @index:=0; update t set sort_num = (@index:=@index+1) where level = 2 order by id;set @index:=0; update t set sort_num = (@index:=@index+1) where level = 3 order by id;

不知有沒更簡潔的sql可以實現上述的需求?

補充

在線sql

問題解答

回答1:

如果只是為了頁面展示,不需要更新表的數據吧??梢栽囋囅旅娴膕ql

select level, @sort_num:=if(@prev_level=t1.level, @sort_num+1, 1)from (select * from t order by id) t1, (SELECT @sort_num:=1, @prev_level:=NULL) varorder by id

相關文章:
国产综合久久一区二区三区