일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- MYSQL
- Stock ipo
- css
- Eclipse
- 공모주 청약 일정
- java
- 오라클
- 자바
- 리눅스
- 공모주 청약
- 주식 청약 일정
- jquery
- linux
- 자바스크립트
- 코드이그나이터
- 6월 공모주 청약 일정
- 맥
- Oracle
- 주식 청약
- IPO
- codeigniter
- SQL
- 제이쿼리
- html
- Stock
- 공모주
- 7월 공모주 청약 일정
- 주식
- JavaScript
- php
- Today
- Total
개발자의 끄적끄적
[oracle/mysql] 이전글, 다음글 쿼리 본문
[oracle/mysql] 이전글, 다음글 쿼리
1. oracle
간단하게 LEAD, LAG를 통해 이전글, 다음글을 구해봅니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
SELECT A.* FROM ( SELECT BOARD_NO, BOARD_TITLE, BOARD_TYPE, LEAD(BOARD_NO, 1) OVER (ORDER BY BOARD_NO DESC) AS NEXT_NO, LEAD(BOARD_TITLE, 1, '다음글이 없습니다') OVER (ORDER BY BOARD_NO DESC) AS NEXT_TITLE, LAG(BOARD_NO, 1) OVER (ORDER BY BOARD_NO DESC) AS PRE_NO, LAG(BOARD_TITLE, 1, '이전글이 없습니다') OVER (ORDER BY BOARD_NO DESC) AS PRE_TITLE FROM BOARD_TB ) A WHERE A.BOARD_TYPE = 1; |
2. mysql
limit를 이용해서 현재 글(#{no}) 보다 큰 녀석을 1개, 작은 녀석을 1개 가져옵니다.
1 2 3 4 5 6 7 8 9 10 |
SELECT BOARD_NO FROM BOARD_TB WHERE BOARD_NO IN ( (SELECT BOARD_NO FROM BOARD_TB WHERE BOARD_NO < #{no} ORDER BY BOARD_NO DESC LIMIT 1), (SELECT BOARD_NO FROM BOARD_TB WHERE BOARD_NO > #{no} ORDER BY BOARD_NO LIMIT 1), ); |
출처: https://graykim.tistory.com/218 [一以貫之]
'개발 > sql' 카테고리의 다른 글
[MySQL] 인덱스 생성, 조회 [펌] (0) | 2020.06.24 |
---|---|
[mysql] insert id 가져오기 (0) | 2020.06.16 |
[sql] 계층형 트리구조 쿼리 [펌] (0) | 2020.06.04 |
[MySQL] GROUP BY , HAVING [펌] (0) | 2020.06.04 |
[mysql] GROUP BY와 HAVING [펌] (0) | 2020.06.03 |