테스트 사이트 - 개발 중인 베타 버전입니다

리스트 정렬 할때 두 필드에서 비교하여 먼저인 데이터값 순으로 정렬하고싶습니다. 채택완료

멀티트리플 3년 전 조회 2,119

두개의 필드가 있는데 아래는 예시입니다. 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개

채택된 답변
+20 포인트
그누위즈

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(수정일자)중 최신을 구하여,

최신순으로 정렬한다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

멀티트리플
3년 전
감사합니다. 덕분에 두가지를 더 알게 되었네요, 검색을 해도 검색어를 잘 지정 못해서 인지 못찾고 있었거든요

댓글을 작성하려면 로그인이 필요합니다.

Dessi
3년 전

값비교 order 써도 될겁니다.

 

ORDER BY LEAST(date_a, date_b) ASC

 

이걸로 해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

멀티트리플
3년 전
감사합니다. 덕분에 간단하게 적용했습니다.

댓글을 작성하려면 로그인이 필요합니다.

하틴
3년 전

저는 이런경우에 서브쿼리(하위질의)를 붙여서 해결한 경험이 있네요

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

멀티트리플
3년 전
네네 조언 감사드립니다.
저도 방법이 없다면, 디비 저장 시 wr_latest를 임의로 고쳐서 저장 시킬까 고민하다가
다른분들의 답변조언으로 출력했습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인