MySQL/PHP : 페이징 중에 추가 기록 유지
문제
제한을 사용하여 페이지를 사용하려는 레코드 목록이 있지만 제한없이 반환되는 첫 번째 레코드는 나머지 레코드의 루트 식별자이며 모든 페이지에 대해 보관해야합니다. 이게 가능해? (나는 추가 SQL 문을 실행하지 않는 것을 선호합니다)
id | index | title
1 | 0 | index of titles
2 | 1 | title1
3 | 1 | title2
4 | 1 | title3
5 | 1 | title4
제한 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