[英]How can I count total results returned from MySQL query with a limit?
我正在使用以下查询从MySQL数据库获取结果:
$query = $this->db->query("
SELECT * FROM results r
INNER JOIN categories c on r.id = c.result_id
INNER JOIN tags t on r.id = t.result_id
WHERE c.name in ('$purpose', '$prop_type', '$loan_type')
$tag_string
AND ( r.scope = 'all' OR r.scope = '$subdomain' )
GROUP BY r.id
HAVING COUNT(c.c_id) = 3
ORDER BY r.usefulness DESC
LIMIT 10 OFFSET $offset
");
返回的结果可能是500+
如果没有限制,我如何计算此查询将返回的总行数,以便向用户显示?
SQL_CALC_FOUND_ROWS和“ SELECT FOUND_ROWS()”是您想要的:
http://dev.mysql.com/doc/refman/5.0/zh-CN/information-functions.html#function_found-rows
很简单,只需使用select count(*) from ...
而不是select * from ...
如果您想在同一个查询中全部完成操作,则可以在这里找到答案:
附加的SELECT FOUND_ROWS();
就是答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.