order by 정렬
본문
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
order by wr_1 desc, case when wr_1='1' then wr_2 else wr_3 end
이렇게 하시면 되요
요렇게 하면 될것 같은데요.. 테스트는 안해봤습니다.
SELECT *, if(wr_1 = 1, wr_2, wr_3 ) sub_order FROM .... WHERE ... ORDER BY wr_1 DESC, sub_order
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
이런 코드를 참고해 보시기 바랍니다.
답변을 작성하시기 전에 로그인 해주세요.