채택완료

mysql 정렬질문

2020-10-26 (월) 13:16:03 3,022

여분필드 wr_1에 생일을 입력하였습니다.

년도/월/일/시간

1999/01/17/12

1999/02/18/23

..

..

..

2020/09/26/19

2020/09/28/18

이런식으로 되있는데

오늘보다 생일이 안지난 사람부터 생일순으로 정렬하고 밑으로는 생일이 지난순으로 정렬을 하고 싶은데 order by ~~~   이런식으로 하는거 같은데 잘 모르겠네요...

어떤식으로 mysql을 해야될나요?

미리 감사합니다.

|

답변 4개

채택된 답변
+20 포인트
Copy
SELECT 컬럼1, 컬럼2, 날짜컬럼,
  CASE
  WHEN 날짜 <= DATE_FORMAT(NOW(), '%Y/%m/%d/%h') THEN 1
    ELSE 2
  END date_sort
  FROM 테이블
  ORDER BY date_sort, 날짜컬럼

테스트 하지는 않았지만 이렇게 처리하면 될 것 같습니다.

생일이 안지난 사람부터 생일순으로 정렬하고 밑으로는 생일이 지난순으로 정렬<--

이 말 뜻은 생일 안 지난 사람은 앞쪽에 오름차순으로 나오고

생일 지난 사람은 뒤쪽에 내림차순으로 정렬 하고싶다는 것인가요?

앞으로는 이렇게 질문자체를 남이 알아먹기 쉽도록 하세요

그게 아니라면 독구파랑님 답변처럼 하되 아래처럼 바꾸어서 하면 됩니다

THEN 1 ELSE 2 ==> THEN 2 ELSE 1

두가지인데요

각 쿼리를날리고 배열로 담는 방법이 있구요

union all 로 쿼리에서 합치는 방법입니다

2020-10-26 (월) 14:50:29

쿼리 두게 만들어서 UNION 써야 하지 않을까 싶습니다.

다른 정렬과 조건의 쿼리로요.

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