database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 31353 게시물 읽기
No. 31353
날짜순서의 게시글 다음,이전글 찾는 쿼리문..
작성자
황세환(hsh0323)
작성일
2021-10-26 11:58
조회수
3,933

안녕하세요.


게시글 다음, 이전글 을 찾으려고 하는데, 막히는 부분이 있어 질문드립니다.


게시글은 입력받은 작성날짜 순서로 노출 됩니다.

여기서 날짜는 작성자가 변경이 가능합니다.


이렇게 날짜순으로 노출되는 게시글의 경우 다음, 이전글은 어떻게 찾을수 있나요?


감사합니다.


 

이 글에 대한 댓글이 총 1건 있습니다.
보통 일짜 뿐 아니라 시간정보까지 함께 저장이 되고
등록일시는 수정이 불가하고
등록일시 순서와 글번호 순서가 일치하게 되므로
글번호로 정렬하면 쉽게 해결이 되는데.

등록일을 수정한다면 id 로 정렬하면 안되고, 등록일로 정렬해야 하는데
등록일은 게시글ID 와 달리 중복이 가능하기 때문에 로직이 좀 복잡합니다.
인덱스 생성과 성능까지 고려해야 하므로 간단하지가 않습니다.
날짜를 수동으로 변경하는게 진짜로 가능한 건가요?

예시) 게시글ID 순서로 이전/이후 찾기
-- 이전글 --
SELECT id
  FROM 게시판
 WHERE id < @id
 ORDER BY id DESC
 LIMIT 1
;
-- 이후글 --
SELECT id
  FROM 게시판
 WHERE id > @id
 ORDER BY id
 LIMIT 1
;


등록일 순서로 이전/이후 찾기
-- 이전글 --
SELECT id
  FROM 게시판
 WHERE dt <= @dt
   AND ( (dt = @dt AND id < @id) OR (dt < @dt) )
 ORDER BY dt DESC, id DESC
 LIMIT 1
;
-- 이후글 --
SELECT id
  FROM 게시판
 WHERE dt >= @dt
   AND ( (dt = @dt AND id > @id) OR (dt > @dt) )
 ORDER BY dt, id
 LIMIT 1
;

 
마농(manon94)님이 2021-10-27 10:16에 작성한 댓글입니다.
이 댓글은 2021-10-27 10:17에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
31356통계 쿼리 질문합니다. [1]
김동현
2021-12-20
3397
31355MariaDB 104 특정 테이블만 character set, collection 변경 가능한가요? [1]
이규영
2021-12-07
3256
31354mysql unknown option 오류 문의 [1]
초보
2021-11-22
3612
31353날짜순서의 게시글 다음,이전글 찾는 쿼리문.. [1]
황세환
2021-10-26
3933
31351mariadb 10.4 유저 패스워드 sha256 암호화 방식으로 사용하는 방법 문의드립니다. [1]
신은정
2021-10-21
3782
31350mariadb 테이블에 데이터가 어떤 암호화 알고리즘을 사용하는지 확인가능한가요? [1]
신은정
2021-10-20
3522
31349insert 프로시저 진행 후 select 프로시저 진행 시 select 오류
이승태
2021-10-15
3510
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다