文章详情页
Mysql update 分组递增 sql咨询
浏览:124日期: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. node.js - Angular-webpack-Starter, 怎么把NodeJS添加进项目里?2. mysql - Java单元测试如何测试修改数据库部分的代码?3. java - web端百度网盘的一个操作为什么要分两次请求服务器, 有什么好处吗4. android - 微信这个效果是怎么实现的5. python小白 自学看书遇到看不懂的地方6. 找一个权威、实战的微信扫码授权登录网站的开发教程或者文章7. python - JWT, django如何定制关于用户的Permission?8. PHP中的$this代表当前的类还是方法?9. phpadmin的数据库,可以设置自动变化时间的变量吗?就是不需要接收时间数据,自动变化10. PHP类封装的插入数据,总是插入不成功,返回false;
排行榜
