숫자형과 문자형이 섞여 있을 때 order by 방법
MySQL이든 MariaDB든 Oracle이든 마찬가지일 것 같다. 1,2,3,4,5,6,7,8,9,10,11,12 가 string 형태의 필드에 저장되어 있을 때 order by를 하면1,11,12,2,3,4,5,6.. 이런식으로 정렬이 되어 버린다. 숫자가 아닌 문자를 기준으로 보자면 11보다 2가 더 크기 때문이다. 이럴 때 형변환(CAST)을 하여 사용하는 경우가 많은데 문제는 아래와 같은 경우이다. 1,2,3,4,5A1, A2, A3A1, B1, B2 이런 숫자와 문자들이 섞여 있는 경우. 예를어 앨범의 '트랙넘버' 필드 같은 경우가 저렇게 생겨먹을 수 있다. (CD는 1,2,3,4로 가지만 테잎이나 LP는 앞뒤면을 나누기 위해 문자가 붙음) 이럴때 조금 복잡한 방법으로, zero padding..
2019. 3. 17.