成绩排名SQL语句 并列成绩按时间最新的排前面怎么写,PHP+MYSQL

PHP+MYSQL,遇到一个问题,表里有用户ID成绩分数和时间戳字段;某个人ID当前排第几名怎么写好呢?主要问题卡在,成绩为并列分数的按时间最新的排前面,条件不知道怎么写... PHP+MYSQL,遇到一个问题,表里有用户ID 成绩分数 和时间戳字段;

某个人ID当前排第几名怎么写好呢?主要问题卡在,成绩为并列分数的按时间最新的排前面,条件不知道怎么写啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名?
展开
 我来答
fmilove
2013-01-15 · TA获得超过155个赞
知道小有建树答主
回答量:442
采纳率:0%
帮助的人:128万
展开全部
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 和分数查询名次……加分!!!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
元伊说
2013-01-15 · 超过17用户采纳过TA的回答
知道答主
回答量:61
采纳率:100%
帮助的人:47.2万
展开全部
select id from 表 order by 成绩 desc,时间 desc
追问
这样查的是某个人的成绩吧?? 怎么查他排在第几名啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
挖井底
2013-01-15
知道答主
回答量:50
采纳率:0%
帮助的人:17.3万
展开全部
select 字段 from 表 order by 成绩,时间 desc
追问
这样查的是某个人的成绩吧?? 怎么查他排在第几名啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
及闪做乖尽旧0U
2013-01-15
知道答主
回答量:46
采纳率:0%
帮助的人:24.7万
展开全部
select * from 表 where id order by 成绩 desc
追问
这样查的是某个人的成绩吧?? 怎么查他排在第几名啊?
数据库里没有对用户排名的字段啊,怎么查询出某个人ID为32的成绩200分排在第几名?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
IT小白童鞋
2017-05-11
知道答主
回答量:6
采纳率:0%
帮助的人:1.8万
展开全部
order by hdate desc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式