안녕하세요.
게시글 다음, 이전글 을 찾으려고 하는데, 막히는 부분이 있어 질문드립니다.
게시글은 입력받은 작성날짜 순서로 노출 됩니다.
여기서 날짜는 작성자가 변경이 가능합니다.
이렇게 날짜순으로 노출되는 게시글의 경우 다음, 이전글은 어떻게 찾을수 있나요?
감사합니다.
보통 일짜 뿐 아니라 시간정보까지 함께 저장이 되고 등록일시는 수정이 불가하고 등록일시 순서와 글번호 순서가 일치하게 되므로 글번호로 정렬하면 쉽게 해결이 되는데. 등록일을 수정한다면 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 ;