在查询中使用LIMIT计算所有结果的计数

时间:2011-10-10 23:10:53

标签: mysql limit

SELECT `p`.`name`, `f`.*
        FROM `players` `p`, `folks` `f`
        WHERE `p`.`id` = `f`.`guid` 
        AND `f`.`deleted` = 0
        AND `first` = {$id} 
        AND `text` LIKE ?
        LIMIT 10

正如您所看到的,我在这里使用LIMIT条件。我需要计算在没有LIMIT cond的情况下匹配的所有结果。

我尝试过使用:FOUND_ROWS();但是我在使用它时遇到了问题,因为它不会在任何地方返回“所有”结果。

1 个答案:

答案 0 :(得分:3)

以下应该做:) 重要的是SQL_CALC_FOUND_ROWS,否则FOUND_ROWS()将无效!

SELECT SQL_CALC_FOUND_ROWS `p`.`name`, `f`.*
    FROM `players` `p`, `folks` `f`
    WHERE `p`.`id` = `f`.`guid` 
    AND `f`.`deleted` = 0
    AND `first` = {$id} 
    AND `text` LIKE ?
    LIMIT 10


SELECT FOUND_ROWS();