리스트 정렬 할때 두 필드에서 비교하여 먼저인 데이터값 순으로 정렬하고싶습니다.
본문
두개의 필드가 있는데 아래는 예시입니다.
date_A / date_B
둘다 날짜 데이터가 들어가 있습니다.
이 두 필드를 함께 비교해서
date_A 든 date_B 든
먼저인 날짜가 먼저 나오도록 정렬하고 싶습니다.
order by date_A desc , date_b desc 로 할경우
date_A로 먼저 정렬 후 date_B로 정렬인데 이경우가 아닌
date_A와 date_B 비교후 날짜 순으로 정렬을 하고 싶습니다.
방법이 있을까요?
답변 3
GREATEST = 2개의 필드중 큰 값을 대입한다.
SELECT *, GREATEST(date_A, date_B) AS re_datetime FROM 테이블명 ORDER BY re_datetime desc
LEAST = 2개의 필드중 낮은 값을 대입한다.
SELECT *, LEAST(date_A, date_B) AS re_datetime FROM 테이블명 ORDER BY re_datetime desc
[그누보드 게시판 응용]
SELECT *, GREATEST(wr_datetime, wr_last) AS re_datetime FROM 게시판테이블명 ORDER BY re_datetime desc
해당 게시판에서 wr_datetime(글작성일자)와 wr_last(수정일자)중 최신을 구하여,
최신순으로 정렬한다.
저는 이런경우에 서브쿼리(하위질의)를 붙여서 해결한 경험이 있네요
값비교 order 써도 될겁니다.
ORDER BY LEAST(date_a, date_b) ASC
이걸로 해보세요.
답변을 작성하시기 전에 로그인 해주세요.