SQL查询字符串,用于获取表中的下一条N条记录

时间:2016-02-22 09:23:38

标签: mysql sqlite

我正在构建聊天应用程序。在聊天屏幕中,我想显示最后20条消息,如果我们向上滚动,它将加载旧消息。任何人都可以带我SQL查询字符串来加载下10个最后的记录吗?

这是我加载最后20条记录的SQL字符串:

SELECT *
FROM
(
    SELECT *
    FROM tbl_chat_content
    ORDER BY message_id DESC
    LIMIT 10
) AS TEMP
ORDER BY TEMP.message_id ASC

1 个答案:

答案 0 :(得分:3)

如果您的ID正在增加,您的查询将返回最后10条记录:

SELECT *
FROM
  (
     SELECT *
     FROM tbl_chat_content
     ORDER BY message_id DESC
     LIMIT 10
  ) AS TEMP
ORDER BY
  TEMP.message_id ASC

您可以指定OFFSET来获取接下来的10条记录(从11到20):

SELECT *
FROM
  (
    SELECT *
    FROM tbl_chat_content
    ORDER BY message_id DESC
    LIMIT 10 OFFSET 10
  ) AS TEMP
ORDER BY
  TEMP.message_id ASC

这从21到30等:

LIMIT 10 OFFSET 20

或不同的语法:

LIMIT 20,10