text 유형 필드에 들어있는 값들을 숫자값 기준으로 정렬하고자 한다면
반드시 해당 필드를 CAST함수를 이용해서 변환해야 한다.
다음 2개의 쿼리를 비교해 보자
* 쿼리 : select * from
prices order by price;
* 결과 :
1420
1590
1990
220
2390
2660
280
2990
3420
380
3990
4270
450
570
5700
760
850
이건 원하는 결과가 아니다. ㅠㅠ…. (애초에 테이블을 만들 때 필드를 숫자 형태로 만들었어야 한다…)
CAST함수를 사용한다면,
* 쿼리 : select * from
prices order by CAST(price AS UNSIGNED);
* 결과 :
220
280
380
450
570
760
850
1060
1420
1590
1990
2390
2660
2990
3420
3990
4270
5700
제대로 나온다.
더 자세한 API는 여기에
http://dev.mysql.com/doc/refman/5.0/en/cast-functions.html