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 이 소수가 간단하고 편해 보였는데,
별 상관 없겠지요?
고맙습니다. ^^
이렇게 하고 사이트 운영해 봤더니 문제는, 가나다순과 가나다 역순이 같이 움직입니다.
즉
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 이 소스가 간단하긴 한것 같습니다만...
일단은 채택한 소스가 원하는대로 움직여주지 않아 관리자님 소스대로 했더니 원하는 결과로 잘 되는 것 같습니다.
order by wr_1 desc, case when wr_1='1' then wr_2 else wr_3 end 이 소스가 간단하긴 한것 같습니다만...
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인