1

テーブルの最初の10行を取得し、同じクエリで合計行数を取得できるように、mysqlクエリを作成しようとしています。

すなわち組み合わせる

SELECT * FROM myTable LIMIT 10; // Get First 10 Rows

SELECT COUNT(*) as cnt FROM myTable // Total Row Count

同じクエリで。

私はPHPを使用しているので、技術的には次のように実行できます。

SELECT * FROM myTable

次に、count()を使用して合計行数を取得し、array_sliceを使用して最初の10個の配列要素を取得します。

しかし、それはあまり効率的ではありません。

4

4 に答える 4

2
SELECT SQL_CALC_FOUND_ROWS * FROM myTable LIMIT 10;

SELECT FOUND_ROWS();

1つのクエリに正確に含まれているわけではありませんが、2番目のクエリは常に同じであり、前のクエリ全体を再度実行する必要はありません。これは、複雑なクエリの場合に適しています。

SQL_CALC_FOUND_ROWS制限が追加されなかったかのようにレコードの総数が計算されるのは、最初のクエリの句です。

于 2012-10-18T20:10:41.447 に答える
1
SELECT COUNT(*),* as cnt FROM myTable group by (anyROW) limit 10
于 2012-10-18T20:09:33.917 に答える
1

SELECT myTable.*, count(*) as count from myTable LIMIT 10;

于 2012-10-18T20:09:50.277 に答える
1

これは行う必要があります:

SELECT (SELECT count(*) FROM TheTable) as ct, TheTable.* FROM TheTable limit 10;
于 2012-10-18T20:14:20.500 に答える