在查询中获得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条件的匹配结果。在查询中获得LIMIT中所有结果的计数
我试过使用:FOUND_ROWS();
但我使用它有问题,因为它不会在任何地方返回“全部”结果。
答
以下应该做的事情:) 重要的是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
不是真的:http://stackoverflow.com/questions/2439829/how-to-count-all-rows-when-using-select-with-limit-in-mysql-query – Isarius