MySQL クエリで LIMIT にもかかわらず行数を検索する
MySQL クエリで LIMIT 句を使用すると、返される行数を制限できます。しかし、クエリに一致する行の合計数も取得する必要がある場合はどうすればよいでしょうか?
LIMIT 句と行数を使用したクエリ
クエリを取得する次のクエリを考えてみましょう。 JOIN を使用した 2 つのテーブルの行のサブセット:
SELECT A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10
このクエリは最初の 10 行を返します指定された条件を満たす行。
SQL_CALC_FOUND_ROWS を使用した解決策
合計行数を取得するには、LIMIT 句と組み合わせて SQL_CALC_FOUND_ROWS 関数を使用できます。
SELECT SQL_CALC_FOUND_ROWS A.ID, A.NAME, B.ID, B.NAME FROM table1 A JOIN table2 B ON ( A.ID = B.TABLE1_ID ) WHERE cond1, cond2, ..., condN LIMIT 10 SELECT FOUND_ROWS();
SQL_CALC_FOUND_ROWS 関数は内部行数を設定しますLIMIT 句を使用してクエリを実行する前に変数を変更します。次に、FOUND_ROWS() 関数は、LIMIT がなければ返される行の総数を表すこの変数の値を取得します。
この手法を使用すると、制限された行のサブセットと、追加のクエリを必要とせずに合計行数を取得できます。
以上がMySQL クエリで「LIMIT」を使用する場合、どのようにして合計行数を取得しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。