상품을 책이랑 굿즈로 구분하기 위해서 상품코드 제일 앞에 책은 B를 굿즈는 G를 붙여뒀었다.
앞에 문자가 붙어서 컬럼 타입도 VARCHAR로 만들었는데 그래도 뒤에 숫자가 있으니까 원래 하던대로 하면 숫자크기대로 정렬이 될 줄 알았음...
SELECT * FROM book ORDER BY product_idx
처음에는 위와 같은 쿼리를 써써 정렬을 했었다.
결과는?!!
완전 지멋대로 뒤죽박죽 난리가 났음...
어떻게 B229 다음에 B23이 올 수 있냔 말이야,,,
그래서 문자열 길이 순으로 먼저 정렬하고 다시 숫자를 정렬했더니 내가 원하는 결과가 나왔다
SELECT * FROM book ORDER BY LENGTH(product_idx) DESC, product_idx DESC
ORDER BY
뒤를 다음과 같이 바꿔줬다
이제 큰 숫자부터 순서대로 나온다!ㅎㅎ
프로젝트하면서 계속 마음에 걸렸었는데 이제야 마음이 편해졌다ㅎㅎ
여기를 참고했습니다!