2015-01-16 2 views
1

mysql을 작업 중입니다. 테이블에서 레코드 목록을 가져오고 그 중 레코드의 세부 정보로 이동합니다. 이제 그 목록의 다음 레코드를 가져오고 싶습니다.order by 절로 다음 레코드 가져 오기

나는이 경우 레코드에 쿼리 아래 내가 2. 지금은 다음 레코드를 가져올 수있는 쿼리를 원하는 컬럼 1 값으로 기록을 선택한

column1 | column2 | column3 
10  | abc1 | zzzz 
2  | abc2 | zsdazz 
20  | abc3 | sddszz 

해당 쿼리의

select * from table_name where column3 like %z% order by column2; 

결과를 참고로 테이블에 수천 개의 레코드가 있으며 사용자는 레코드를 선택하고 다음 레코드로 이동할 수 있습니다.

감사합니다.

답변

3

당신은 where 절 및 하위 쿼리를 추가 할 수 있습니다

select * 
from table_name 
where column3 like '%z%' and 
     column2 > (select column2 
       from table_name 
       where column1 = 2 and column3 like '%z%' 
       ) 
order by column2; 

참고 : column1가 고유 한 경우, 다음 '% z는 %'와 같은 '3 열이 필요하지 않습니다.

+0

쿼리가 잘 작동합니다. 고유하지 않은 값을 가진 column2를 처리하는 방법. –

+0

'table_name'에 중복 된 것이 있으면 하위 쿼리에서'select max (column2)'를 사용할 수 있습니다. –

0

사용 LIMIT

이 시도 : 2 열에서 값이 고유 경우

SELECT * 
FROM table_name 
WHERE column3 LIKE %z% 
ORDER BY column2 LIMIT 2, 1; 
+0

limit 절에서 사용할 수있는 마법 번호 '2'를 어떻게 얻을 수 있습니까? –

+0

요점을 찾지 못했습니까? –

+0

당신의 질의가 작동하지만 10k 레코드가 있다고 가정하고 내가 가져 오는 레코드 번호, 즉 limit 절에 포함 된 행 번호를 얻는 방법을 가정하십시오. –