0

假设我有一张评论表,如下所示:

---------------------------
| comment | date | rating |
---------------------------
| a       | 1    |      1 |
---------------------------
| b       | 4    |      3 |
---------------------------
| c       | 7    |      2 |
---------------------------
| d       | 1    |     10 |
---------------------------
| e       | 3    |     20 |
---------------------------

我想对表格进行排序,以便两个评分最高的评论始终出现在结果的顶部,与日期无关,其余评论按日期降序排序。结果应如下所示:

---------------------------
| comment | date | rating |
---------------------------
| e       | 3    |     20 |
---------------------------
| d       | 1    |     10 |
---------------------------
| c       | 7    |      2 |
---------------------------
| b       | 4    |      3 |
---------------------------
| a       | 1    |      1 |
---------------------------

这可能吗?

4

1 回答 1

1

你可以做两个 SQL 查询。第一个选择两个最高的命令。

SELECT comment, date, rating FROM comments ORDER BY rating DESC Limit 2

然后你可以只显示其他人并按日期订购。你不是在为评论表保存一个ID吗?如果是,您还可以在上述查询中选择 ID,然后在第二个查询中选择所有评论,按日期排序,没有上一个查询中的 ID。

于 2013-05-04T10:17:37.260 回答