MySQL クエリによって返される行数をカウントすることは、さまざまなデータベース操作にとって重要です。この記事では、さまざまなシナリオやテクニックに対応した、このタスクに対する包括的なソリューションを提供します。
合計を取得する最も簡単な方法行数は、結果を反復処理してカウンターをインクリメントします。ただし、MySQL には、行の直接カウントを提供する組み込み関数 mysql_num_rows が用意されています。たとえば、PHP では、mysqli_num_rows を次のように使用できます。
<code class="php"><?php $result = mysqli_query($link, "SELECT * FROM table1"); $num_rows = mysqli_num_rows($result); echo "$num_rows Rows\n"; ?></code>
特定の条件を満たす行をカウントするには、次のように使用します。 COUNT(*) 関数。たとえば、bar が 'value' に等しい行をカウントするには:
SELECT COUNT(*) FROM foo WHERE bar= 'value';
LIMIT 句を使用する場合、制限を適用せずに合計行数を知りたい場合は、SQL_CALC_FOUND_ROWS に続いて SELECT FOUND_ROWS() を使用します。例:
<code class="sql">SELECT SQL_CALC_FOUND_ROWS * FROM foo WHERE bar="value" LIMIT 10; SELECT FOUND_ROWS();</code>
ただし、SQL_CALC_FOUND_ROWS は MySQL 8.0.17 の時点で非推奨となり、以降のバージョンでは削除されることに注意してください。カウントを計算するには別のクエリを使用することをお勧めします。
大規模なテーブルの場合、カウント用に別のクエリを実行することができます。非効率的です。代わりに、より複雑なクエリを起動する前に、単純なクエリを 1 回実行して再利用することでカウントをキャッシュすることを検討してください。
以上がMySQL クエリの行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。