2009-08-04 2 views
1

私はLIMITを使用してページングしたいレコードのリストを持っていますが、LIMITなしで返される最初のレコードは残りのレコードのルート識別子でもありますすべてのページのためにそれを保つために。これは可能ですか?あなたはMyISAM(index, id)上の複合キーを(持っている場合mysql/php:ページング中に余分なレコードを保持する

id | index | title 
1 | 0  | index of titles 
2 | 1  | title1 
3 | 1  | title2 
4 | 1  | title3 
5 | 1  | title4 

LIMIT 3、2を返す必要があります...

id | index | title 
1 | 0  | index of titles 
4 | 1  | title3 
5 | 1  | title4 

答えて

3
SELECT * 
FROM (
     SELECT * 
     FROM mytable 
     WHERE index = 0 
     ORDER BY 
       index, id 
     LIMIT 1 
     ) q 
UNION ALL 
     (
     SELECT * 
     FROM mytable 
     WHERE index = 1 
     ORDER BY 
       index, id 
     LIMIT 3, 2 
     ) q2 

(私は、余分なSQLステートメントを実行したくありません) )またはindexInnoDB)のインデックスの場合、最初のクエリのコストはほとんどかかりません。

+0

ありがとうございます! – EddyR

関連する問題