Mysql &引用;逆;限制?

Mysql &引用;逆;限制?,mysql,sql,pagination,limit,Mysql,Sql,Pagination,Limit,我正在使用MySQL存储财务数据,并使用这些数据构建每个帐户的所有事务的注册表。出于性能方面的考虑,为了避免用户被庞大的表压垮,我对结果进行分页 现在,作为寄存器的一部分,我显示帐户的流动余额。因此,如果我每页显示20个事务,而我显示的是第二页,我使用的数据如下: 事务0-19:忽略它们-它们比正在查看的页面更新 事务处理20-39:从这些事务中选择所有内容-它们将被显示 交易40-??:将这些交易的金额相加,以使流动余额准确无误 我最讨厌的是最后一个。使用限制条款选择前40个交易很容易,但

我正在使用MySQL存储财务数据,并使用这些数据构建每个帐户的所有事务的注册表。出于性能方面的考虑,为了避免用户被庞大的表压垮,我对结果进行分页

现在,作为寄存器的一部分,我显示帐户的流动余额。因此,如果我每页显示20个事务,而我显示的是第二页,我使用的数据如下:

  • 事务0-19:忽略它们-它们比正在查看的页面更新
  • 事务处理20-39:从这些事务中选择所有内容-它们将被显示
  • 交易40-??:将这些交易的金额相加,以使流动余额准确无误
我最讨厌的是最后一个。使用限制条款选择前40个交易很容易,但是除了前40个交易之外,其他交易是否都具有可比性?类似“限制40”的东西


我知道我可以通过一个计数和一点数学来实现这一点,但实际的查询有点难看(多个连接和分组),所以我宁愿尽可能少地发出它。这似乎足够有用,可以包含在SQL中——我只是不知道。还有其他人吗?

你可以这样做:

select sel.*
from
(
SELECT @rownum:=@rownum+1 rownum, t.*
FROM (SELECT @rownum:=0) r, YourTableOrYourSubSelect t
) sel
where rownum > 40
这有点像在MySQL中使用Oracle的rownum。

说:

LIMIT
子句可用于约束返回的行数 通过
选择
语句<代码>限制
接受一个或两个数值参数, 都必须是非负整数常量,并且 例外情况:

  • 在准备好的语句中,可以指定
    限制
    参数 使用?占位符标记

  • 在存储程序中,可以使用指定
    LIMIT
    参数 自MySQL起的整数值例程参数或局部变量 5.5.6

对于两个参数,第一个参数指定 要返回的第一行,第二行指定 要返回的行。初始行的偏移量为0(不是1):

检索从某个偏移量到结果末尾的所有行 设置时,可以使用较大的数字作为第二个参数。这 语句检索从第96行到最后一行的所有行:

SELECT * FROM tbl LIMIT 95,18446744073709551615;

下次,请将文档用作您的第一个呼叫端口。

是有意义的,即使它有点像黑客。我将取代Adrian的,因为它看起来更可能使用索引。所以,尽管你删除了我原始问题中礼貌的部分,并感谢人们帮助我:谢谢。@Xavier:我只删除了多余和不必要的标签和签名。请停止在你的问题中写它们。
SELECT * FROM tbl LIMIT 95,18446744073709551615;