mysql / php:ページング中に追加のレコードを保持する
質問
LIMITを使用してページスルーするレコードのリストがありますが、LIMITなしで返される最初のレコードは、残りのレコードのルート識別子でもあり、すべてのページで保持する必要があります。これは可能ですか? (余分なSQL文を実行したくないだけです)
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
解決
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
(index、id)
( MyISAM
)に複合キーがある場合、または index
( InnoDB
)、最初のクエリの費用はほとんどかかりません。
所属していません StackOverflow