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

order by 정렬 채택완료

좋은사진 11년 전 조회 6,043

wr_1, wr_2. wr_3

위 세개에서

wr_1 값은 1 혹은 0

wr_2 값은 이름

wr_3 값은 글 올려진 날짜

입니다.

 

정렬하고 싶은 것은

order by wr_1 desc, wr_3

이렇게 하면 wr_1 값이 1이 먼저 출력되면서 올려진 날자대로 정렬됩니다.

이것을

wr_1 값이 1 이면 wr_2 값의 이름 가나다 순으로 
wr_1 값이 0 이면 wr_3 값의 날짜순 으로 정렬 하고 싶습니다.​

 

즉 order by wr_1 desc, wr_3 하면 아래와 같이 출력됩니다.

wr_1

wr_2

wr_3

1 홍길동 12일
1 임꺽정 15일
1 삼돌이 18일
0 사순이 2일
0 삼순이 16일

 

아래와 같이 출력하고 싶습니다. wr_1 값이 1이면 이름순 0이면 날짜순

 

wr_1

wr_2

wr_3

1 삼돌이 18일
1 임꺽정 15일
1 홍길동 12일
0 사순이 2일
0 삼순이 16일

 

고맙습니다. ^^ 

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

답변 3개

채택된 답변
+20 포인트
11년 전

order by wr_1 desc, case when wr_1='1' then wr_2 else wr_3 end

이렇게 하시면 되요 

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

답변에 대한 댓글 4개

관리자
11년 전
앗! 이런 방법도 있군요. 좋은것 배워갑니다. 감사합니다.
아침안개
11년 전
관리자님 별 말씀을 다하세요
먼저 답변을 해주셨네요 ^_^ 테스트하느라 조금 늦었어요
좋은사진
11년 전
아~~ 아주 잘 됩니다.
대단히 고맙습니다.
복 많이 받으시리라 믿습니다. ^^
좋은사진
11년 전
order by wr_1 desc, case when wr_1='1' then wr_2 else wr_3 end
이렇게 하고 사이트 운영해 봤더니 문제는, 가나다순과 가나다 역순이 같이 움직입니다.


wr_1 값이 1 이면 wr_2 가나다 순이 맞게 출력되는데, wr_1 값이 0이면 wr_3은 역순으로 출력됩니다.

그래서
order by wr_1 desc, case when wr_1='1' then wr_2 else wr_3 end desc
했더니, wr_1 값은 가나다 역순, wr_3 값은 가나다 순 이렇게 출력됩니다.

결국은
order by wr_1 desc, case when wr_1='1' then wr_2 end, case when wr_1='0' wr_3 end
이렇게 하니까
wr_1 값이 1 이면 wr_2 가나다 순, wr_1 값이 0이면 wr_3도 가나다 순로 출력됩니다.

order by wr_1 desc, case when wr_1='1' then wr_2 else wr_3 end 이 소수가 간단하고 편해 보였는데,
별 상관 없겠지요?

고맙습니다. ^^

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

리자
리자 Expert
11년 전
select * from `테이블명`
order by wr_1 desc
, case when (wr_1=1) then wr_2 end asc 

, case when (wr_1=0) then wr_3 end asc 

 

이런 코드를 참고해 보시기 바랍니다.

 

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

답변에 대한 댓글 1개

좋은사진
11년 전
관심가져 주셔서 대단히 고맙습니다. ^^

일단은 채택한 소스가 원하는대로 움직여주지 않아 관리자님 소스대로 했더니 원하는 결과로 잘 되는 것 같습니다.

order by wr_1 desc, case when wr_1='1' then wr_2 else wr_3 end 이 소스가 간단하긴 한것 같습니다만...

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

11년 전

 

요렇게 하면 될것 같은데요.. 테스트는 안해봤습니다.

 

 

SELECT  *,  if(​wr_1 = 1, ​wr_2, wr_3 ) sub_order  FROM .... WHERE ...  ORDER BY  wr_1 DESC,  sub_order

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

답변에 대한 댓글 1개

좋은사진
11년 전
관심가져 주셔서 대단히 고맙습니다. ^^

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

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

로그인