web-dev-qa-db-ja.com

LIMITで行数をCOUNTする方法は?

X行をキャッチしたいので、LIMIT X;しかし、どうすれば同時に行の総数も数えることができますか?

現在、私は2つの別々のクエリを使用してそうしています

SELECT COUNT(*) FROM col WHERE CLAUSE
SELECT * FROM col WHERE CLAUSE LIMIT X

これを1つのクエリで行う方法はありますか?

編集:出力はcolセルと行数である必要があります。実際、colセルを選択した後は、テーブル上を移動してカウントのみを行う必要があります。

最初の行は1行を返し、2番目のX行を返すため、これらの2つのクエリをマージすることはできません。 LIMITの存在下で行数を返す関数がmysqlにあるかどうか、私は気になります。

8
Googlebot

LIMITを実行したいようですが、LIMITなしで返される行数はわかっています。チェックアウト FOUND ROWS

5
Alain Collins

SELECTクエリで_SQL_CALC_FOUND_ROWS_を使用してから、SELECT FOUND_ROWS()を実行します。

_SELECT SQL_CALC_FOUND_ROWS field_name,filed_name2 FROM col WHERE CLAUSE LIMIT X;
SELECT FOUND_ROWS() ;
_
3
Dipa

私はこれが古いものであることを知っていますが、MySQL> = 8.0.17の場合、もう有効ではありませんcf MySQL Function Found_Rows() したがって、両方のクエリを発行する必要があります。残念ながらCOUNT()で追加してください。

2
Fred