【问题标题】:COUNT of sql SELECT query with LIMIT in mySQL在 mySQL 中使用 LIMIT 的 sql SELECT 查询的 COUNT
【发布时间】:2013-06-21 16:23:06
【问题描述】:

在 php-mysql 中,如何计算 SELECT 查询中返回的行数?
让我们想想SELECT 查询是这样的:

$q = "SELECT * from users LIMIT 20,60"

但如果总记录数仅为 55,则结果是用户从 20 到 55,总数为 35 而不是 40!
如何在不查询数据库两次的情况下获得数字 35?
现在我正在这样做:

$q = "SELECT COUNT(*) from users LIMIT 20, 60";
$result = mysqli_query($db_connection, $1);
$count = mysqli_fetch_row($result);
$count = $count[0];

但是在这里我查询了数据库两次,我认为这不太好。
我知道我可以在不考虑LIMIT、使用SQL_CALC_FOUND_ROWS 和FOUND_ROWS() 的情况下获得总行数,但这不是我的情况,因为我想考虑LIMIT。
谢谢!

【问题讨论】:

    标签: php sql select count limit


    【解决方案1】:

    你想num_rows

    $count = $result->num_rows;
    

    【讨论】:

    • 谢谢!我会检查并接受你的回答。但这是同一个 az mysqli_num_rows($result); 吗?
    • 是的。根据页面:面向对象的风格--int $mysqli_result->num_rows;程序风格——int mysqli_num_rows (mysqli_result $result)
    【解决方案2】:

    你可以使用

    $q = "SELECT COUNT(*) from users LIMIT 20, 60";
    $result = mysqli_query($db_connection, $1);
    $count = mysqli_num_rows($result);
    

    mysqli_num_rows() 返回 no。行数

    【讨论】:

    • 谢谢!你的回答和anyber的回答结果一样吗?我的意思是$result->num_rows。
    • 我认为在你的情况下我的答案是完美的,因为任何人的答案都是面向对象的查询
    猜你喜欢
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    相关资源
    最近更新 更多