【问题标题】:Efficient DB2 query pagination and show total pages?高效的 DB2 查询分页并显示总页数?
【发布时间】:2013-04-03 18:24:11
【问题描述】:

这篇文章展示了一些对 DB2 页面数据的黑客攻击:

How to query range of data in DB2 with highest performance?

但它不提供显示总行数的方法(如 MySQL 的 CALC_FOUND_ROWS)。

SELECT SQL_CALC_FOUND_ROWS thread_id AS id, name, email
FROM threads WHERE email IS NOT NULL
LIMIT 20 OFFSET 200

在 MySQL 中我可以跟进

SELECT FOUND_ROWS()

获取总行数。第一部分很容易复制到最新版本的 DB2 中。我在 Google 上找不到任何与第二个查询相当的结果(我不想要临时表、子查询或其他效率极低的荒谬解决方案)。

【问题讨论】:

  • 顺便说一句,我使用的是最新的 DB2,所以任何新功能都可以。

标签: mysql performance pagination db2 resultset


【解决方案1】:

我认为这在 DB2 中不存在。

请注意,总行数是一个需要额外计算才能获得的值。它不只是躺在某个地方——它必须专门内置到LIMIT 逻辑中。他们看起来不像。

【讨论】:

  • 那么,我只需要使用 count(*) 重复修改后的查询,这就是你的意思吗?
  • @sventech,是的,在单独的查询中获取计数可能是最好的。
  • 参考下面的答案,stackoverflow.com/questions/6997838/…
猜你喜欢
  • 2015-04-22
  • 2015-03-11
  • 2012-12-11
  • 2013-04-16
  • 2018-07-12
  • 1970-01-01
  • 2010-10-04
  • 2019-05-31
  • 2021-11-14
相关资源
最近更新 更多