【问题标题】:PHP / SQL - Show specific number of rows per queryPHP / SQL - 显示每个查询的特定行数
【发布时间】:2015-03-28 22:41:21
【问题描述】:

如果已经有人问过这个问题,我深表歉意,我确定它已经问过了我只是无法找到解决我问题的类似问题/答案。

我正在从 PostgreSQL 中提取数据,并且我有一个类似于以下内容的 SQL 语句:

$SQL = "SELECT * FROM my_view_table WHERE id='".$my_id."'";

从这里我运行我的查询。该请求从 PostgreSQL 中的视图中提取,该视图查看更多表。那是正确的。我不确定如何限制要显示的行数。我收到大约 1,000 行信息和大约 20 列数据,因此查询需要花费大量时间。

有没有办法要求第 0 - 100 行,然后是 101 - 200 等,所以我可以一次拉出 100 行来显示?我知道我必须使用一些代码来跟踪计数,但我只需要一些 SQL 帮助来查询“x 到 y”行。

感谢您对此问题的帮助。 (如果有另一个非常相似的问题已经被回答,那么一个链接就足够了!)

我已经在下面发布了我的问题的答案。

【问题讨论】:

  • 你能在你的 SQL 上使用 LIMIT 吗?自从我使用 PostgreSQL 以来已经有一段时间了,我不确定您的视图是如何设置的。
  • 该视图只是一个“从表中选择 X、Y、Z 左连接 ... WHERE ... GROUP BY ...”我将查找 SQL 的 LIMIT。跨度>
  • ` "SELECT * FROM my_view_table WHERE id='".$my_id."' LIMIT 50"` postgresql.org/docs/8.1/static/queries-limit.html

标签: php sql postgresql count rows


【解决方案1】:

我从 gnarly 对 LIMIT on SQL 的建议中找到了这个问题的答案

$sql = "SELECT * FROM my_table LIMIT X OFFSET Y";

其中 LIMIT 仅给出您想要的 X 行数,而 OFFSET 给出 Y 起点。所以显示第 0 行到第 30 行:

$sql = "SELECT * FROM my_table LIMIT 30 OFFSET 0";

并显示第 31 到 60 行:

$sql = "SELECT * FROM my_table LIMIT 30 OFFSET 30";

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 2013-03-12
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多