繁体   English   中英

如何计算从MySQL查询返回的总结果有限制?

[英]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 ...

如果您想在同一个查询中全部完成操作,则可以在这里找到答案:

如何在MYSQL的单个查询中计算和限制记录?

附加的SELECT FOUND_ROWS(); 就是答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM