2011-10-10 80 views
3
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條件的匹配結果。在查詢中獲得LIMIT中所有結果的計數

我試過使用:FOUND_ROWS();但我使用它有問題,因爲它不會在任何地方返回「全部」結果。

+0

不是真的:http://stackoverflow.com/questions/2439829/how-to-count-all-rows-when-using-select-with-limit-in-mysql-query – Isarius

回答

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(); 
+0

哦,我現在已經在分離的查詢變量中創建了'SELECT FOUND_ROWS();'它工作。謝謝你,小夥伴 :)。 – Isarius