2014-12-27 2 views
0

나는 백만 개의 행을 가진 MySQL 테이블을 가지고있다. 내 쿼리의 결과는 100 개의 행을 포함해야하며 날짜별로 정렬되어야합니다.SQL 쿼리 결과의 특정 부분을 선택하는 방법은 무엇입니까?

이제 데이터베이스에 "ID '5' '행 뒤에 오는 행으로 결과를 시작하도록 지시 할 수있는 절을 조회에 추가하려고합니다. 따라서 내 결과에는 4, 3, 2, 6, 8 등의 ID가있는 행이 포함됩니다.

친애하는 독자, 내 비참함에서 벗어날 수있는 데이터베이스 마법사입니까? ;)

검색어 :

SELECT id, type, content, date 
FROM my_table 
WHERE type = 'FI' 
ORDER BY date ASC 
LIMIT 100; 

결과 :

| id | type | content | date  | 
|----|------|----------|------------| 
| 7 | FI | ContentR | 2014-01-01 | 
| 9 | FI | ContentS | 2014-01-13 | 
| 1 | FI | ContentT | 2014-02-09 | 
| 5 | FI | ContentU | 2014-03-27 | 
| 4 | FI | ContentV | 2014-03-30 | ---| 
| 3 | FI | ContentW | 2014-04-01 | | 
| 2 | FI | ContentX | 2014-06-10 | |- The result I want 
| 6 | FI | ContentY | 2014-09-03 | | 
| 8 | FI | ContentZ | 2014-12-09 | | 
...         ---| 

답변

3
SELECT id, type, content, date 
FROM my_table 
WHERE type = 'FI' 
AND date > (SELECT date FROM my_table WHERE id = 5) 
ORDER BY date ASC 
LIMIT 100; 
+0

유일한 문제는 쿼리가 하위 쿼리에서 '유형 ='FI''을해야하는지 여부입니다. 이것이 필요한지는 의문의 여지가 없습니다. –

+0

나는 'id'가 고유 한 ID라고 가정하기 때문에 더 이상 차별 할 필요가 없습니다. – Barmar

+0

@ Barmar, 고맙습니다. @ GordonLinoff :'type = 'FI'는 질문의 일부가 아니지만 원래 쿼리의 일부이며 제거하고 싶지 않았습니다 ... – krebas

관련 문제