[ mysql ] order by null 날짜정렬시 빈값을 맨앞 또는 맨뒤로 하고 다시 최신날짜 또는 오래된날짜로 로 정렬하고 싶다면? > database

본문 바로가기

사이트 내 전체검색

database

[ mysql ] order by null 날짜정렬시 빈값을 맨앞 또는 맨뒤로 하고 다시 최신날짜 또는 오래된날짜로 로 정렬하…

작성일 22-01-19 16:46

페이지 정보

작성자 웹지기 조회 5,468회 댓글 0건

본문

1)

SELECT * FROM [table] ORDER BY (CASE WHEN [column] is null THEN 2 WHEN [column] = '0000-00-00' THEN 0 ELSE 1 END), [column] ASC

여기서 [column] = '0000-00-00' 은 [column] = '' 와 같은 식으로도 사용을 하는데 이렇게 오류가발생해서 0으로 채워서 진행했다.

ORDER BY 시 null값이  공백이나 0000-00-00 으로 채워지고 이를 정렬하여  위로  올려준다.

반대로  NULL값을 맨 아래로 보내고 싶다면 THEL 1 ELSE 0 END 를 사용한다.

최신 날짜로 정렬은 맨뒤 DESC
오래된 날짜로 정렬은 맨뒤 ASC

 

2) 

공백과 null의 경우

SELECT * FROM [table] ORDER BY [column] IS NULL ASC, [column] DESC;

그런데 나같은 경우 이렇게 하면 값이 정렬이 되지 않고 중간에 null과 0000-00-00 값이 같이 존재해서 정렬이 되지 않았다.

 

3)

SELECT * FROM [table] ORDER BY ISNULL([column], 999999999) DESC

이 내용은 확인 해보지 않았다.

 

4)

SELECT 

    [column]

FROM

    [table]

ORDER BY

    FIELD([column], '0000-00-00', '') DESC,

    [column] ASC
이 구문 같은 경우 정렬이 되지 않았다 


추천0

비추천 0

댓글목록

등록된 댓글이 없습니다.

전체 34건 1 페이지

이미지 목록

게시물 검색
Copyright © 즐거운 코딩 생활 ( funyphp ). All rights reserved.
PC 버전으로 보기