簡體   English   中英

如何在MySQL中按降序對前10個條目進行排序?

[英]How do I sort the top 10 entries in descending order in mySQL?

我有一個表,其中包含可以按等級排序的條目。 我想獲得前10個條目(使用SELECT * FROM table ORDER BY rank DESC可以很簡單),但是然后我希望這些條目按降序排列,因此排名最低的條目將排在頂部。 我該怎么做?

(SELECT * FROM table ORDER BY rank DESC LIMIT 10) ORDER BY rank ASC;

這是您要找的東西嗎?

您應該能夠:

SELECT    * 
FROM      (SELECT * FROM `table` ORDER BY rank DESC LIMIT 10) dt
ORDER BY  dt.rank ASC;

我猜你有一個這樣的表:

CREATE TABLE `table` (id int, rank int);
INSERT INTO `table` VALUES (1, 20), (2, 19), (3, 18), (4, 17), (5, 16), (6, 15),
                           (7, 14), (8, 13), (9, 12), (10, 11), (11, 10), 
                           (12, 9), (13, 8), (14, 7), (15, 6), (16, 5), (17, 4), 
                           (18, 3), (19, 2), (20, 1);

您將得到如下結果:

+------+------+
| id   | rank |
+------+------+
|   10 |   11 |
|    9 |   12 |
|    8 |   13 |
|    7 |   14 |
|    6 |   15 |
|    5 |   16 |
|    4 |   17 |
|    3 |   18 |
|    2 |   19 |
|    1 |   20 |
+------+------+
10 rows in set (0.02 sec)

更新:

@onik的解決方案返回相同的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM