文章詳情頁
Mysql update 分組遞增 sql咨詢
瀏覽:102日期: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. python - 使用xlsxwriter寫入Excel, 只能寫入65536 無法繼續寫入.2. Python做掃描,發包速度實在是太慢了,有優化的方案嗎?3. objective-c - ios百度地圖定位問題4. java - Web開發 - POI導出帶有下拉框的Excel和解決下拉中數組過多而產生的異常5. java - 微信退款,公賬號向個人轉賬SSL驗證失敗6. java - 安卓接入微信登錄,onCreate不會執行7. python - flask如何創建中文列名的數據表8. javascript - 關于定時器 與 防止連續點擊 問題9. 微信開放平臺 - Android調用微信分享不顯示10. python - mysql 如何設置通用型字段? 比如像mongodb那樣
排行榜
