【问题标题】:Database: SQL Pagination?数据库:SQL 分页?
【发布时间】:2009-10-10 02:03:07
【问题描述】:

我正在使用 MySQL。

我想限制从数据库中获取的行数。我有一条 SQL 语句,它返回 10,000 条与搜索相关的记录。

SELECT colA, colB, colC
FROM xyzTable
WHERE ...
ORDER BY colA

我知道如何使用 TOP 语句返回提取的 TOP x 行数,但是如何提取搜索结果中间的行,例如第 50-100 行?

【问题讨论】:

    标签: sql mysql database


    【解决方案1】:

    MySQL 的 limit clause 让这一切变得简单:

    SELECT cols
    FROM table
    LIMIT offset, rowcount
    

    在你的情况下:

    LIMIT 49, 50 -- skip rows 0-49, grab the next 50
    

    【讨论】:

      【解决方案2】:

      通过执行以下操作:

      SELECT colA, colB, colC FROM xyzTable WHERE ... ORDER BY colA LIMIT 30 , 40

      30 是您想要开始的数字,40 是您想要查看的许多项目。

      然后你可以随意增加这些值。

      【讨论】:

        【解决方案3】:

        使用LIMIT:

        SELECT ... FROM ... WHERE ... ORDER BY ... LIMIT 50, 50
        

        LIMIT 子句可用于 限制返回的行数 通过 SELECT 语句。 LIMIT 需要 一个或两个数字参数

        【讨论】:

          【解决方案4】:
          SELECT colA, colB, colC
          FROM xyzTable
          WHERE ...
          ORDER BY colA
          LIMIT 10, 5
          

          LIMIT 10, 5 定义结果范围(这将返回结果 11、12、13、14、15)。

          【讨论】:

            【解决方案5】:
            SELECT colA, colB, colC
            FROM xyzTable
            WHERE ...
            ORDER BY colA LIMIT 49,50;
            

            LIMIT 行偏移,行数 第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数...

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2022-07-14
              • 2018-11-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-01-29
              相关资源
              最近更新 更多