mysql - 如何在MYSQL中按升序显示后3个结果

标签 mysql

我有一个表格如下所示

id | color
---|-----
1  | red
2  | pink
3  | blue
4  | violet
5  | yellow

我有这个问题

$query = "SELECT * FROM colors WHERE id='".$rowId."' ORDER BY id DESC LIMIT 3";
$result = $db->query($query);
while ($row = $result->fetch_assoc()) { 
    echo $row['id']."-";
    echo $row['color'];
}

相应地显示结果

5 - yellow
4 - violet
3 - blue

当我使用 ORDER BY id ASC LIMIT 3 它显示从顶部开始的 3 个结果

1  - red
2  - pink
3  - blue

我想要的是按 ASC 顺序显示前 3 个底部

3 - blue
4 - violet
5 - yellow

所以如果我更新表格并添加一个新行,它应该显示为

4 - violet
5 - yellow
6 - green

最佳答案

然后像这样使用子查询:

SELECT 
  * 
FROM 
  (SELECT * FROM colors WHERE id=$rowId ORDER BY id DESC LIMIT 3) AS internal 
ORDER BY 
  id ASC

关于mysql - 如何在MYSQL中按升序显示后3个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19356114/

相关文章:

PHPExcel 无法正常工作

php - 我如何组合这些 sql 查询的结果?

jquery - 在 jqGrid 子网格中获取自定义 rowId

php - 使用 php 和 mysql 在 iF​​rame V2 中显示特定的 URL

mysql - 限制此查询仅显示小数点后两位

mysql - 由于 SELECT FOR UPDATE 在没有事务的情况下毫无意义,并且事务本身使用锁,因此 SELECT FOR UPDATE 的用例是什么?

mysql - 更新具有特定条件和计数器的表中的列(意外结果)

mysql - 如何在没有 ON 条件的情况下使用 mysql JOIN?

php - 具有多个报价和产品的报价系统

java - 通过JFrame表单更新MySQL数据库,同时刷新JFrame表单上的J表