Php 单个mysqli查询语句,以获取总行数和限制
我想获取MySQL db表中记录的总数,并使用此限制。例如,有100行,我想使用的限制是10。我知道如何使用两个查询来实现这一点,但我想一次性完成Php 单个mysqli查询语句,以获取总行数和限制,php,mysql,sql,mysqli,Php,Mysql,Sql,Mysqli,我想获取MySQL db表中记录的总数,并使用此限制。例如,有100行,我想使用的限制是10。我知道如何使用两个查询来实现这一点,但我想一次性完成 SELECT count(*) as total_rows FROM mytable; // gets the total count of rows SELECT col1,col2 FROM mytable LIMIT 0, 10; // gets the 10 rows of col1,col2 我想一次完成这件事。任何想法。 谢谢。以下是
SELECT count(*) as total_rows FROM mytable; // gets the total count of rows
SELECT col1,col2 FROM mytable LIMIT 0, 10; // gets the 10 rows of col1,col2
我想一次完成这件事。任何想法。
谢谢。以下是演示以下各项工作原理的示例:
SELECT m.*,
(
SELECT COUNT(*)
FROM mytable AS sm
) AS TotalCount
FROM (
SELECT mt.col1, mt.col2
FROM mytable AS mt
LIMIT 0, 10
) AS m
看一看Shayan Husaini关于 我自己试过之后,更新了他的原始答案。您必须在查询中的SELECT之后添加“SQL\u CALC\u FOUND\u ROWS”,并添加第二个查询,如下面的代码段所示
$sql1 = "SELECT SQL_CALC_FOUND_ROWS col1,col2 FROM mytable LIMIT 0, 10";
$sql2 = "SELECT FOUND_ROWS()";
$result1 = $conn->query($sql1);
$result2 = $conn->query($sql2);
$TotalRcount = $result2->fetch_row();
// I have added this next line to correct the answer
$TotalNumRows = $TotalRcount[0];
您可以像平常一样使用$result1访问结果 你不能仅仅因为你能做到就让它一次“走”,但这并不意味着你应该这样做。