가령 디비에 아래와 같이 들어가 있다고 치자.
table sample
name
aa 1
aa 2
aa 3
aa 4
aa 5
aa 6
aa 7
aa 8
aa 9
aa 10
aa 11
aa 12
aa 13
순서대로 소트 할려면 쿼리가.
SELECT * FROM sample
ORDER BY aa
하면
aa 1
aa 10
aa 11
aa 12
aa 13
으로 나열 해준다. 원하지 않는 결과지 않는가.
그래서 공백기준으로 잘라서 다시 해본다.
SELECT * FROM sample
ORDER BY (substring_index(name,' ',-1)
공백기준으로 뒷부분 다 짤라서 정렬하면
아래와 같이 나온다.
aa 1
aa 10
aa 12
aa 13
아무래도 형변환을 해서 해야 제대로 소트가 될거 같은데
그래서!
SELECT * FROM sample
ORDER BY(substring_index(name, ' ', -1) + 0)
을 해주면
aa 1
aa 2
aa 3
aa 4
aa 5
aa 6
aa 7
aa 8
aa 9
aa 10
aa 11
처럼 순서대로 정렬해준다.
name
aa 1
aa 2
aa 3
aa 4
aa 5
aa 6
aa 7
aa 8
aa 9
aa 10
aa 11
aa 12
aa 13
순서대로 소트 할려면 쿼리가.
SELECT * FROM sample
ORDER BY aa
하면
aa 1
aa 10
aa 11
aa 12
aa 13
으로 나열 해준다. 원하지 않는 결과지 않는가.
그래서 공백기준으로 잘라서 다시 해본다.
SELECT * FROM sample
ORDER BY (substring_index(name,' ',-1)
공백기준으로 뒷부분 다 짤라서 정렬하면
아래와 같이 나온다.
aa 1
aa 10
aa 12
aa 13
아무래도 형변환을 해서 해야 제대로 소트가 될거 같은데
그래서!
SELECT * FROM sample
ORDER BY(substring_index(name, ' ', -1) + 0)
을 해주면
aa 1
aa 2
aa 3
aa 4
aa 5
aa 6
aa 7
aa 8
aa 9
aa 10
aa 11
처럼 순서대로 정렬해준다.