文章詳情頁
Mysql update 分組遞增 sql咨詢
瀏覽:215日期: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:如果只是為了頁面展示,不需要更新表的數據吧。可以試試下面的sql
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
相關文章:
1. docker gitlab 如何git clone?2. docker鏡像push報錯3. docker api 開發的端口怎么獲取?4. macos - mac下docker如何設置代理5. debian - docker依賴的aufs-tools源碼哪里可以找到啊?6. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下7. docker - 如何修改運行中容器的配置8. docker start -a dockername 老是卡住,什么情況?9. angular.js使用$resource服務把數據存入mongodb的問題。10. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????
排行榜

網公網安備