2

MySQL db テーブルのレコードの総数を取得し、これで制限も使用したいと考えています。たとえば、100 行があり、使用したい制限を 10 とします。2 つのクエリを使用してこれを行う方法は知っていますが、これを一度に行いたいと考えています。

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

How to get the total row count with MySQLiに関する Shayan Husaini の回答をご覧ください。

自分で試した後、元の回答を更新しました。以下のコード スニペットに示すように、クエリの SELECT の後に "SQL_CALC_FOUND_ROWS" を追加し、2 つ目のクエリを追加する必要があります。

$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 に答える