미채택 완료

mysql 쿼리 관련 질문!

2016-04-04 (월) 10:56:50 2,519

안녕하세요. 특정 필드에 year+month 값을 저장합니다.

보통은 201604 이렇게 저장하는데요. 

간혹 20164 로 저장되기도 합니다. 문제는 여기서 order by를 사용하는데요.

만약 20163, 20164, 201605 이렇게 3~5월이 있고 order by desc 하면 5~3월 순으로 나왔으면 하는데..

20164, 20163, 201605 이렇게 정렬됩니다.

제대로 정렬되기 위한 방법이 있을까요?

|

답변 2개 / 댓글 1개

2016-04-04 (월) 11:24:33

해결하였습니다.

ORDER BY STR_TO_DATE( CONCAT(left(컬럼명, 4),  '-', substring(컬럼명, 5, length(컬럼명))) ,  '%Y-%m' ) DESC 

2016-04-04 (월) 11:19:17

201605 > 20164 > 20163

이 순서로 정렬을 원하신다면 숫자로 하면 될 것 같습니다.

ORDER BY 칼럼 + 1 DESC

답변에 대한 댓글 1개

2016-04-04 (월) 11:22:31
답변감사합니다!
그러나 201605, 20164, 201603 이라면 +1을 사용할 수 없을것 같아요...

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