成绩排名SQL语句 并列成绩按时间最新的排前面怎么写,PHP+MYSQL
PHP+MYSQL,遇到一个问题,表里有用户ID成绩分数和时间戳字段;某个人ID当前排第几名怎么写好呢?主要问题卡在,成绩为并列分数的按时间最新的排前面,条件不知道怎么写...
PHP+MYSQL,遇到一个问题,表里有用户ID 成绩分数 和时间戳字段;
某个人ID当前排第几名怎么写好呢?主要问题卡在,成绩为并列分数的按时间最新的排前面,条件不知道怎么写啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名? 展开
某个人ID当前排第几名怎么写好呢?主要问题卡在,成绩为并列分数的按时间最新的排前面,条件不知道怎么写啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名? 展开
5个回答
展开全部
ORDER BY 成绩 DESC,时间 DESC
追问
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名?
追答
MYSQL 中没有像ORACLE中那样有自带的隐藏列(rownum),可以试下利用排序后从结果集中读取满足条件的数据在结果集中的行数,即为其排名……比较麻烦
找到一种方法:仅适用于MYSQL
SELECT M.成绩,M.时间,M.pm FROM (
SELECT A.*,@rank:=@rank+1 as pm FROM
(
select 成绩 ,时间 from 表 order by 成绩 desc ,时间 desc
) A ,(SELECT @rank:=0) B
) M ORDER BY M.成绩
结果类似:
成绩 时间 pm
-----------------------
10 2012年12月18日 下午05时33分00秒 1
10 2012年10月26日 下午03时11分13秒 2
写多了…… 仅下面语句就OK了
SELECT A.*,@rank:=@rank+1 as pm FROM
(
select 成绩 ,时间 from 表 order by 成绩 desc ,时间 desc
) A ,(SELECT @rank:=0) B
然后根据当前ID 和分数查询名次……加分!!!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select id from 表 order by 成绩 desc,时间 desc
追问
这样查的是某个人的成绩吧?? 怎么查他排在第几名啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 字段 from 表 order by 成绩,时间 desc
追问
这样查的是某个人的成绩吧?? 怎么查他排在第几名啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表 where id order by 成绩 desc
追问
这样查的是某个人的成绩吧?? 怎么查他排在第几名啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
order by hdate desc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询