일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 공모주
- Eclipse
- 주식 청약
- IPO
- Oracle
- css
- 오라클
- 공모주 청약 일정
- 공모주 청약
- java
- 주식 청약 일정
- linux
- MYSQL
- 제이쿼리
- 주식
- Stock
- 리눅스
- jquery
- 코드이그나이터
- 자바
- html
- 자바스크립트
- php
- 7월 공모주 청약 일정
- 6월 공모주 청약 일정
- SQL
- JavaScript
- Stock ipo
- codeigniter
- 맥
- 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 |