子查询
问题描述:
使用SQL_CALC_FOUND_ROWS我发现,MySQL的,如果我把SQL_CALC_FOUND_ROWS子查询子查询
SELECT
*
FROM
(
SELECT SQL_CALC_FOUND_ROWS * FROM test_table
) as T1
返回
Incorrect usage/placement of 'SQL_CALC_FOUND_ROWS'
错误有没有解决方法呢?还是我只是不正确地实施?
编辑:有一个原因,我需要让T1子查询,以防万一有人想知道。
答
看来你不正确地使用它。 SQL_CALC_ROWS_FOUND
似乎只适用于外部查询。我不知道这是否会符合你的使用情况,或者如果您有其他WHERE
在你的外部查询,但你可以做这样的事情:
选择 SQL_CALC_FOUND_ROWS * FROM ( SELECT * FROM test_table )as T1;
SELECT FOUND_ROWS();
FOUND_ROWS()
函数将给出在应用任何LIMIT
之前找到的总行数。有关FOUND_ROWS()
的更多信息,请查询here。