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

时间:2013-11-08 16:12:55

标签: php mysql sql mysqli

我想获取MySQL数据库表中的记录总数,并使用此限制。例如,有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

我想一气呵成。任何的想法。 感谢。

2 个答案:

答案 0 :(得分:1)

How to get the total row count with MySQLi

上看看Shayan Husaini的回答

我自己尝试后更新了原来的答案。您必须在查询后的SELECT之后添加“SQL_CALC_FOUND_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来访问结果。

答案 1 :(得分:0)

以下是展示以下内容的SQL Fiddle

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