【问题标题】:How to figure out if a SQL query will return more than X rows?如何确定 SQL 查询是否会返回多于 X 行?
【发布时间】:2022-11-18 01:22:02
【问题描述】:

我想将分页添加到数据表中,因此我需要计算过滤查询将返回的行数。我的计划是在每个方向上仅显示当前页面的 5-10 页(如果这些页面存在)。但是,一些已过滤结果的查询可能页面较少。

例如,如果我每页只显示 10 行,并且只计划显示 10 页的分页,然后添加 "..." 。然后我应该只需要知道查询是否会返回 101 行,如果它有更多它可以放弃并且不计算更多行以节省 DB 上的执行时间。

我看到这样的事情:

select count(*) from (
   select top 100 id from "your_table"
) 

我认为这应该是一个非常常见的查询,因此可能是更好的查询方式。

我想问问 select CountLessThen(100) from your_table 是否返回“行数”或 False。

因此,当行数过多时它可以放弃,而不是每次都计算表中的所有行。

【问题讨论】:

  • 这应该在您的前端实现。
  • 这应该主要在您的前端实现。您还可以最小化数据库中的结果集。这可能会加快速度。

标签: sql datatable query-optimization


【解决方案1】:
select count(*) from (
   select top 100 id from "your_table"
) 

...永远不会返回超过 100。

您需要在应用程序中处理应用程序行为。至于 SQL,只获取前 101 行。

select top 101 id from "your_table"

然后,如果您的应用程序检测到它已经处理了 100 行,则停止处理行并添加“...”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多