我正在使用MySQL存储财务资料,并使用数据来构建每个帐户的所有交易记录等。出于性能方面的考虑-为了防止用户被庞大的表格所淹没-我对结果进行了分页。
现在,作为注册的一部分,我将显示该帐户的余额。因此,如果我每页显示20个事务,而我显示第二页,则使用如下数据:
那是最后一个让我很烦。这很容易选择 先 使用LIMIT第40周的交易,但有一些类似的一切 ,但 前40?诸如“ LIMIT -40”之类的东西?
我知道我可以用一个COUNT和一点数学就能做到这一点,但是实际的查询有点丑陋(多个JOIN和GROUP BY),所以我宁愿尽可能少地发布它。这似乎足够有用,可以包含在SQL中-我只是不知道。还有其他人吗?
该文档说:
该LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数字参数,这些参数都必须是非负整数常量,但以下情况除外: 在准备好的语句中,LIMIT可以使用?指定参数。占位符标记。 在存储程序中,LIMIT可以使用整数值的例程参数或从MySQL 5.5.6开始的局部变量来指定参数。 有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量是0(不是1): SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 要检索从某个偏移量到结果集末尾的所有行,可以为第二个参数使用较大的数字。 该语句检索从第96行到最后一行的所有行: SELECT * FROM tbl LIMIT 95,18446744073709551615;
该LIMIT子句可用于约束SELECT语句返回的行数。LIMIT接受一个或两个数字参数,这些参数都必须是非负整数常量,但以下情况除外:
LIMIT
SELECT
在准备好的语句中,LIMIT可以使用?指定参数。占位符标记。
在存储程序中,LIMIT可以使用整数值的例程参数或从MySQL 5.5.6开始的局部变量来指定参数。
有两个参数,第一个参数指定要返回的第一行的偏移量,第二个参数指定要返回的最大行数。初始行的偏移量是0(不是1):
SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
要检索从某个偏移量到结果集末尾的所有行,可以为第二个参数使用较大的数字。 该语句检索从第96行到最后一行的所有行:
SELECT * FROM tbl LIMIT 95,18446744073709551615;
下次,请使用该文档作为您的第一个停靠港。