![](/img/trans.png)
[英]PHP MYSQL finding row number/rank from table with order by clause
[英]SQL/PHP Rank (row number) from table
我有一个马匹表,我想在马匹个人资料页面上显示马匹的全球排名,我的表看起来像这样。
id name first second third
282 NewBreed 3 1 0
278 CueCard 1 1 0
283 TapTapBoom 1 0 0
286 Boomboom 0 0 0
285 Hoe 0 0 0
284 Boombastic 0 0 0
287 Haha 0 0 0
288 Boom 0 0 0
280 Annie 0 1 0
279 Boutan 0 1 0
281 Wahay 0 1 0
289 42r3etgf 0 0 0
例如,如果我在马“TapTapBoom”的个人资料中,他的全球排名将是第三……我如何获得这个数字? 我猜我需要在按“第一”对表格进行排序后获取行号。
SELECT *
FROM horses
ORDER BY first
DESC
SELECT row_number
WHERE name = TapTapBoom
因此,在我的 PHP 中,我需要输入马的 ID 或名称,结果我得到了马的全球排名……排名是他在表格中按“第一”排序后的马在表格中的位置.
这是原始表:
由于 MySQL 没有像其他 RDBMS 那样内置的行号函数,因此您必须使用变量来实现这一点:
SELECT @rank:=@rank+1 AS rank, name, runs
FROM horses, (SELECT @rank=0) vars
ORDER BY runs DESC, name
这将责令runs
降序排列,并在平局的情况下,将骑手名称的字母顺序进行升序排列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.