欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql怎么查詢排第幾名并列

傅智翔2年前10瀏覽0評論

在MySQL中查詢排名并列的數據可以通過使用變量進行實現。

SELECT 
t1.id, t1.score,
IF(t1.score=@s, @rank:=@rank, @rank:=@i:=@i+1) rank,
@s:=t1.score score_rank
FROM
score t1, (SELECT @s:=0, @rank:=0, @i:=0) t2
ORDER BY t1.score DESC;

以上SQL語句中:

  • t1是需要查詢的表,id和score是需要查詢的字段。
  • t2是用于初始化變量的虛擬表,@s為排名分數的變量,@rank為排名變量,@i為計數器。
  • IF函數用于判斷當前分數是否跟前一條分數相同,如果相同則排名不變,否則排名加1。
  • @s:=t1.score用于將查詢的分數保存到@s變量中,以便下一條記錄使用。
  • ORDER BY t1.score DESC用于按照分數從高至低排序。

運行以上SQL語句,將會得到類似下面的結果:

+----+-------+------+
| id | score | rank |
+----+-------+------+
|  4 |    100|     1|
|  5 |    100|     1|
|  2 |     90|     3|
|  1 |     85|     4|
|  6 |     80|     5|
|  3 |     75|     6|
+----+-------+------+

其中第2條和第3條記錄排名并列第1名,所以它們都是1,而第4條記錄排名為第4名。