文章详情页
Mysql update 分组递增 sql咨询
浏览:246日期: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-compose 为何找不到配置文件?2. clone - git sourceTree克隆仓库时,都不停弹出Password Required弹窗,即时输入正确的git账号密码还是弹出3. docker - 如何修改运行中容器的配置4. node.js - npm安装模块时,在cmd上显示的是一条白线,白线前面是一天反斜线转圈圈,然后就出现npm ERR错误了,求帮助,谢谢5. java - 做一个视频播放器,想实现一个功能,如果3秒不点击屏幕任何,则下方一个界面布局(显示按钮那些的)自动消失。6. java - Spring MVC 映射请求问题7. html5 - 请问一下写H5的时候 你们都是兼容那些手机8. php - 注册验证邮箱失效后操作问题9. javascript - Vue $refs 为什么无法获取组件对象10. javascript - 如何用最快的速度C#或Python开发一个桌面应用程序来访问我的网站?
排行榜

网公网安备