0

シナリオがあります。テーブルに 300 レコードあるとします。クエリを実行して合計数を取得します。次に、ページネーションを実装する必要があるため、

カウントに応じた制限を使用して、同じテーブルからデータを選択します。単一のクエリでカウントとデータを取得できるかどうかを考えていました。.

以下のコードを試しました:

Select * ,count(*) as cnt from table;

しかし、これにより合計数が得られましたが、レコードは 1 つしかありません!

クエリで使い果たされた時間を節約し、単一のクエリで結果を取得する方法はありますか?

4

3 に答える 3

4

何かのようなもの:

select t1.*,t2.cnt
from table t1
cross join (select count(*) as cnt from table) t2 
limit 'your limit for the first page'

また

select *,(select count(*) from table) as cnt
from table
limit 'your limit for the first page'
于 2013-03-14T13:50:14.083 に答える
0

あなたが言及したデータ構造で情報を取得できますが、実際にそれを行う理由はありません。行数の取得とデータ選択の 2 つのクエリを実行しても、パフォーマンスの問題はありません。1 つのクエリですべての情報を選択しようとすると、何も保存されません。代わりに 2 つの単純なクエリを実行してください。これは、アプリにとってより良い解決策になります。単純さと明快さを維持できます。

于 2013-03-14T14:01:54.150 に答える
0

2 つのクエリを使用することは、思ったほど悪くはないかもしれません。詳細については、こちらをお読みください。

于 2013-03-14T13:57:20.867 に答える