これは簡単な質問だと思いますが、グーグルは私に結果を選択して数えるだけです。
制限のあるテーブルから選択して、通常はクエリの影響を受けるすべての行をカウントできるかどうか疑問に思っています。
例えば:
テーブルカーで100行を取得し、最初の20行を選択して、1つのクエリでcarsテーブルにある車の数をカウントします。
前もって感謝します
次の関数を使用SQL_CALC_FOUND_ROWS
してから使用します。FOUND_ROWS()
SELECT SQL_CALC_FOUND_ROWS * FROM ... LIMIT 100;
SELECT FOUND_ROWS();
私があなたの必要性を理解している場合(制限されたクエリの結果と完全なテーブルの行数が必要であると理解しています)、これはSELECT
サブクエリを使用するか、サブクエリJOIN
に対して実行できます。カウントクエリから1行だけ戻ることが期待されるため、デカルト結合を使用できます(ON
句なし)。すべての行の数は、各列で同じ値として表示されます。
SELECT
cars.*,
carcount.numcars
FROM
cars
JOIN (SELECT COUNT(*) AS numcars FROM cars) carcount
LIMIT 20
次のような結果が生成されます
make model numcars
ford focus 100
ford model t 100
...
...
20 rows, numcars always = 100