【发布时间】:2023-03-30 01:54:01
【问题描述】:
我正在使用 MySQL 来存储财务资料,并使用这些数据来构建每个帐户的所有交易记录等。出于性能原因 - 并且为了防止用户被巨大的表格所淹没 - 我对结果进行了分页。
现在,作为登记的一部分,我会显示帐户的流动余额。因此,如果我每页显示 20 笔交易,并且我正在显示第二页,我使用的数据如下:
- 事务 0 - 19: 忽略它们 - 它们比正在查看的页面更新。
- 事务 20 - 39:从中选择所有内容 - 它们将被显示。
- 交易 40 - ??: 将这些金额相加,使流动余额准确无误。
最后一个让我很烦。使用 LIMIT 子句选择 first 40 个事务很容易,但是对于所有 前 40 个事务是否有可比性?像“LIMIT -40”这样的东西?
我知道我可以用 COUNT 和一点数学来做到这一点,但实际查询有点难看(多个 JOIN 和 GROUP BY),所以我宁愿尽可能少地发出它。这似乎足够有用,可以包含在 SQL 中——我只是不知道。还有人吗?
【问题讨论】:
标签: mysql sql pagination limit