mysql 中倒序显示的记录
records showing in reverse order in mysql
示例数据如下。
我正在编写以下查询以获取最近的 10 条记录。
SELECT * FROM `tblmessages` order by message_id desc limit 10
问题是它以相反的顺序给出了结果。
我的预期结果集是从消息 id = 15 到消息 id = 24。
但是,我目前正在从消息 ID = 24 到消息 ID = 15。我的意思是,它以相反的顺序显示。你能推荐点什么吗?
这里是查询的Laraveleloquent。
ThreadMessagesModel::where("thread_id", $thread_id)
->orderBy("message_id", "desc")
->paginate(10);
结果是反向显示的,因为排序依据desc
结束。您可以使用以下查询来获取最高 ID 的排序 asc
ding`
SELECT * FROM `tblmessages`
WHERE message_id IN (
SELECT message_id
FROM `tblmessages`
order by message_id desc
limit 10
)
SELECT *
FROM (
SELECT *
FROM tblmessage
ORDER BY message_id DESC
LIMIT 10
) main
ORDER BY main.message_id;
我认为你应该运行下面的查询。
Select * from (
SELECT * FROM `tblmessages` order by message_id desc limit 10
) as a
order by message_id
示例数据如下。
我正在编写以下查询以获取最近的 10 条记录。
SELECT * FROM `tblmessages` order by message_id desc limit 10
问题是它以相反的顺序给出了结果。
我的预期结果集是从消息 id = 15 到消息 id = 24。
但是,我目前正在从消息 ID = 24 到消息 ID = 15。我的意思是,它以相反的顺序显示。你能推荐点什么吗?
这里是查询的Laraveleloquent。
ThreadMessagesModel::where("thread_id", $thread_id)
->orderBy("message_id", "desc")
->paginate(10);
结果是反向显示的,因为排序依据desc
结束。您可以使用以下查询来获取最高 ID 的排序 asc
ding`
SELECT * FROM `tblmessages`
WHERE message_id IN (
SELECT message_id
FROM `tblmessages`
order by message_id desc
limit 10
)
SELECT *
FROM (
SELECT *
FROM tblmessage
ORDER BY message_id DESC
LIMIT 10
) main
ORDER BY main.message_id;
我认为你应该运行下面的查询。
Select * from (
SELECT * FROM `tblmessages` order by message_id desc limit 10
) as a
order by message_id