2

我想获取 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

我想一口气做到这一点。任何想法。谢谢。

4

2 回答 2

1

看看 Shayan Husaini 关于如何使用 MySQLi 获取总行数的答案

我自己尝试后更新了他的原始答案。您必须在查询中的 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 访问您的结果。

于 2015-02-17T16:06:15.533 回答
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
于 2013-11-08T16:15:13.117 回答