记录在mysql中以相反的顺序显示

时间:2019-08-19 17:44:50

标签: mysql laravel laravel-5.7 laravel-5.8

样本数据如下。

enter image description here

我在下面的查询中编写以获取最近的10条记录。

SELECT * FROM `tblmessages` order by message_id desc limit 10

问题在于它以相反的顺序给出结果。

我的预期结果集是从消息ID = 15到消息ID = 24。

但是,我目前正在从消息ID = 24变为消息ID =15。我的意思是,它以相反的顺序显示。你能建议点什么吗?

这是Laravel雄辩的查询。

ThreadMessagesModel::where("thread_id", $thread_id)
                   ->orderBy("message_id", "desc")
                   ->paginate(10);

3 个答案:

答案 0 :(得分:2)

我认为您应该运行以下查询。

Select * from (
                SELECT * FROM `tblmessages` order by message_id desc limit 10
              ) as a 
order by message_id

答案 1 :(得分:1)

SELECT *
FROM (
       SELECT *
       FROM tblmessage 
       ORDER BY message_id DESC
       LIMIT 10
) main
ORDER BY main.message_id;

答案 2 :(得分:0)

结果以相反的顺序显示,因为按desc结尾。您可以使用以下查询来获取ID最高的asc ding`

SELECT * FROM `tblmessages` 
WHERE message_id IN (
                        SELECT message_id 
                        FROM `tblmessages` 
                        order by message_id desc 
                        limit 10
                    )