mysql 查询获取排名的方法(绝对有效)

http://blog.csdn.net/k8080880/article/details/11253305

select

case when pid=0 then
case when @prevType=QUETYPE_ID then @rank:[email protected]+1
when @prevType:=QUETYPE_ID then @rank:=1 end
else QUE_SORT end as QUE_SORT2,

A.*

from(
SELECT
0 EXAM_ID,
q.PID,

q.QUE_SORT,

@prevType:=q.QUETYPE_ID

FROM
T_HOME_QUESTION rel left join
T_QUESTION q on (rel.question_id=q.question_id or rel.question_id=q.pid )
WHERE rel.home_id=320 order by QUETYPE_ID,pid
)A,(SELECT @rank:=0, @prevType:=null) B

时间: 2024-11-07 11:06:41

mysql 查询获取排名的方法(绝对有效)的相关文章

MySQL随机获取数据的方法,支持大数据量

最近做项目,需要做一个从mysql数据库中随机取几条数据出来. 总所周知,order by rand 会死人的..因为本人对大数据量方面的只是了解的很少,无解,去找百度老师..搜索结果千篇一律.特发到这里来,供大家学习. 在mysql中带了随机取数据的函数,在mysql中我们会有rand()函数,很多朋友都会直接使用,如果几百条数据肯定没事,如果几万或百万时你会发现,直接使用是错误的.下面我来介绍随机取数据一些优化方法. SELECT * FROM table_name ORDER BY ran

MYSQL查询重复记录的方法

select * from hengtu_demandpush a where (a.did,a.mid) in (select did,mid from hengtu_demandpush group by did,mid having count(*) > 1) 或 select * from hengtu_demandpush group by did,mid having count(*)>1 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断 select 

mysql随机查询记录的高效率方法

mysql使用rand随机查询记录的高效率方法 一直以为mysql随机查询几条数据,就用 SELECT * FROM `table` ORDER BY RAND() LIMIT 5 就可以了. 但是真正测试一下才发现这样效率非常低.一个15万余条的库,查询5条数据,居然要8秒以上 查看官方手册,也说rand()放在ORDER BY 子句中会被执行多次,自然效率及很低. You cannot use a column with RAND() values in an ORDER BY clause

元数据--MySQL获取元数据的方法

元数据:数据的数据,用以描述数据的信息也是数据,被称为元数据 [MySQL]获取元数据的方法 MySQL提供了以下三种方法用于获取数据库对象的元数据: 1)show语句 2)从INFORMATION_SCHEMA数据库里查询相关表(information_schema是一个虚拟数据库,并不物理存在,它储存数据的信息的数据库) 3)命令行程序,如mysqlshow, mysqldump --用SHOW语句获取元数据 MySQL用show语句获取元数据是最常用的方法,下面提供了几种典型用法: [sq

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法(摘录)

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下: select * from `article` where date_format(from_UNIXTIME(`add_time`),'%Y-%m-%d') = date_format(now(),'%Y-%m-%d'); 或者: selec

mysql查询排名

student_work表 student_info表 sql语句:按grade从高到低排名 结果: mysql查询排名

直接从命令行获取MySQL查询语句结果

如果你需要直接从命令行获取MySQL查询语句结果,那么你可以使用-B和-N这两个参数来达到目的. 例:获取MySQL用户数. [[email protected] ~]# mysql -BN -uroot -predhat mysql -e 'select count(*) from user' 6 [[email protected] ~]# -B参数:去掉边框 -N参数:只显示结果

板邓:mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法

mysql查询今天,昨天,近7天,近30天,本月,上一月数据的方法分析总结: 话说有一文章表article,存储文章的添加文章的时间是add_time字段,该字段为int(5)类型的,现需要查询今天添加的文章总数并且按照时间从大到小排序,则查询语句如下: select * from `article` where date_format(from_UNIXTIME(`add_time`),’%Y-%m-%d’) = date_format(now(),’%Y-%m-%d’); 或者: selec

MySQL中查询获取每个班级成绩前三名的学生信息

今天有同事说到了怎么MySQL中查询获取每个班级成绩前三名的学生信息,在网上查了查,然后写出代码,很快就OK了. CREATE TABLE t_testscore(    pk_id INT PRIMARY KEY,    c_name VARCHAR(50) ,    c_score INT,    c_class INT )DEFAULT CHARSET=utf8; INSERT INTO t_testscore VALUES (1, '张三6', 66, 1),(2, '张三5', 65,