我想获取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
我想一气呵成。任何的想法。 感谢。
答案 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