1

我有一张如下表

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 它时,它会显示从 TOP 开始的 3 个结果

1  - red
2  - pink
3  - blue

我想要发生的是按 ASC 顺序显示前 3 个 BOTTOM

3 - blue
4 - violet
5 - yellow

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

4 - violet
5 - yellow
6 - green
4

1 回答 1

1

然后像这样使用子查询:

SELECT 
  * 
FROM 
  (SELECT * FROM colors WHERE id=$rowId ORDER BY id DESC LIMIT 3) AS internal 
ORDER BY 
  id ASC
于 2013-10-14T08:25:03.467 回答