Php 单个mysqli查询语句,以获取总行数和限制

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 我想一次完成这件事。任何想法。 谢谢。以下是

我想获取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 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访问结果

你不能仅仅因为你能做到就让它一次“走”,但这并不意味着你应该这样做。