博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql实现rownum
阅读量:6710 次
发布时间:2019-06-25

本文共 466 字,大约阅读时间需要 1 分钟。

经过查找,在网上找到了类似的写法。但是经过测试,发现查询结果与期望的情况不相符,经过一系列的测试,终于发现了问题所在。

以下是经过测试过的sql

select id,class,score,rank from (  select b.id,b.class,b.score, if(@pdept=b.class,@rank:=@rank+1,@rank:=1) as rank,  @pdept:=b.class  from (  select id,class,score from a order by id ,score  ) b ,(select  @pdept := null ,@rank:=0) c ) result  having rank <6 ;

  在order by处,第一个排序字段必须是想要进行分类的字段,这样可以保证在查询时,能够把所有的分类字段做成连续的区间,然后再对想要排序的字段进行排序

 

转载于:https://www.cnblogs.com/pengjian-one/p/8674849.html

你可能感兴趣的文章
我的友情链接
查看>>
基于centOS6.7搭建LAMP(httpd-2.4.18+mysql-5.5.47+php-5.6.16)环境
查看>>
AIX下PVID详解及其修改方法
查看>>
C# Directory和DirectoryInfo类(文件目录操作)
查看>>
OSPF中的五类LSA
查看>>
maven 加入json-lib.jar 报错 Missing artifact net.sf.js
查看>>
当Elasticsearch logstash kibana (ELK) 遇到symantec
查看>>
单片机的汇编语言与嵌入式C语言的比较
查看>>
POJ-2509(Water,Greedy)
查看>>
获取img元素图片的实际尺寸
查看>>
我的友情链接
查看>>
最新HADOOP 调优常用参数统计表
查看>>
haproxy 配置详解
查看>>
nginx代理resin
查看>>
Java编程最差实践
查看>>
linux运维常用命令
查看>>
axis开发webservice
查看>>
网络系统集成工程师——十八般武艺
查看>>
我的友情链接
查看>>
ping命令加入时间戳并写入文本
查看>>