根据此答案:here
使用
SQL_CALC_FOUND_ROWS
不受比赛条件的限制。的 是SELECT
查询的结果,但不是FOUND_ROWS()
的结果。 请勿混淆。
但是从我执行的所有查询中来看,这都取决于比赛条件,并且每次我使用SQL_CALC_FOUND_ROWS
时,由于某些原因,我从{{1}返回select found_rows() as rows
如果您有关于此主题的更多信息,请告诉我。
使用-> Mysql 5.6(Aurora RDS)
答案 0 :(得分:1)
Aurora不是MySQL。
Amazon已从存储引擎中剥离了许多代码和功能,但尚未禁用相应的功能或状态变量或配置变量。
MySQL用户熟悉的一堆功能仍然可以在Aurora上使用,但没有作用。就像那些投币式小车之一的方向盘一样。
Aurora没有提供完整的文档,说明哪些功能仍在起作用,哪些功能已“断开”。
对于SQL_CALC_FOUND_ROWS
,它可能仍然有效,具体取决于您的Aurora版本。我在他们的发行说明中找到了对它的引用:
https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Updates.20170515.html
修复了Aurora MySQL 1.11版中引入的回归,该回归中使用SQL_CALC_FOUND_ROWS选项并调用FOUND_ROWS()函数时,查询可能返回错误的结果。
您是否正在使用受此错误影响的Aurora实例,或者是否该错误已在您使用的版本中再次回归?
您需要仔细检查可用的Aurora信息,如果找不到所需的信息,请联系AWS支持。
并且不要假设在MySQL中工作的东西在Aurora中会以相同的方式工作。它们实际上是不同的软件产品。 MySQL是开源的,Aurora不是。