SQL按升序选择最后10行

Bry*_*ter 3 php sql

这是我当前的代码:

$messages = mysqli_query($link, "SELECT `user`, `message` FROM `chat` ORDER BY `id` DESC LIMIT 10");
while($row = mysqli_fetch_array($messages)) {
    echo "<strong>".$row['user'].":</strong> ".safe_out($row['message'])."<br />";  
}
Run Code Online (Sandbox Code Playgroud)

chat将以降序打印表中的最后10条消息。我想做的是按升序打印最后10条消息。

更改DESCASC只会打印出前10条消息,但是我正尝试以升序打印最后10条消息。

我需要将mysqli_query结果放入数组并使用reverse还是有更简单的方法?

谢谢

Fuz*_*ree 5

您可以使用派生表按升序对最后10条消息进行重新排序

SELECT * FROM (
  SELECT `id`, `user`, `message` FROM `chat` ORDER BY `id` DESC LIMIT 10
) t1 ORDER BY t1.id
Run Code Online (Sandbox Code Playgroud)