我发现MySQL返回
Incorrect usage/placement of 'SQL_CALC_FOUND_ROWS'
如果我将SQL_CALC_FOUND_ROWS放在子查询中,则会出现错误
SELECT
*
FROM
(
SELECT SQL_CALC_FOUND_ROWS * FROM test_table
) as T1
有解决方法吗?或者我只是错误地实施它?
编辑:有一个原因,我需要让T1成为子查询以防万一有人想知道。
答案 0 :(得分:1)
好像你正在使用它不正确。 SQL_CALC_ROWS_FOUND
似乎只适用于外部查询。我不确定这是否适合您的用例,或者您的外部查询中是否有其他WHERE
,但您可以执行以下操作:
选择 SQL_CALC_FOUND_ROWS * 从 ( SELECT * FROM test_table )作为T1;
SELECT FOUND_ROWS();
FOUND_ROWS()
函数将为您提供在应用LIMIT
之前找到的总行数。有关FOUND_ROWS()
检查here。