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개 / 댓글 6개
채택된 답변
+20 포인트
order by wr_1 desc, case when wr_1='1' then wr_2 else wr_3 end
이렇게 하시면 되요
답변에 대한 댓글 4개
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 이 소수가 간단하고 편해 보였는데,
별 상관 없겠지요?
고맙습니다. ^^
이렇게 하고 사이트 운영해 봤더니 문제는, 가나다순과 가나다 역순이 같이 움직입니다.
즉
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 이 소수가 간단하고 편해 보였는데,
별 상관 없겠지요?
고맙습니다. ^^
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
이런 코드를 참고해 보시기 바랍니다.
답변을 작성하려면 로그인이 필요합니다.