2011-09-06 103 views
1

使用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子查询,以防万一有人想知道。

回答

1

看来你不正确地使用它。 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