MYSQL에서 아래와 같이 문자와 숫자가 섞인 데이터를 정렬하는 방법입니다.
일반적인 order by 필드 asc 를 할 경우
숫자가 순차적으로 되는것이 아니고 아래 예제처럼 정렬이 되는데요.
select name from table order by codename asc;
+-------------------+
| name |
+-------------------+
| 1.면 |
| 10.O |
| 11.마 |
| 12.브 |
| 2.린 |
| 3.의 |
| 4.계 |
| 5.방 |
| 6.커 |
| 7.누 |
| 8.패 |
| 9.부 |
+-------------------+
이것을 1,2,3,... 등 숫자 순으로 정렬하기 위해서는 order by 필드 *1 asc 로 정렬조건을 변경해주시면 됩니다.
정렬하고자 하는 필드 뒤에 *1 이 핵심이며 여러가지로 응용도 가능합니다.
select name from table order by codename *1 asc;
+-------------------+
| codename |
+-------------------+
| 1.면 |
| 2.린 |
| 3.의 |
| 4.계 |
| 5.방 |
| 6.커 |
| 7.누 |
| 8.패 |
| 9.부 |
| 10.O |
| 11.마 |
| 12.브 |
+-------------------+
'개발' 카테고리의 다른 글
[초간편] 이미지 편집 기능 추가 (웹에서 바로 실행, 용량 줄이기, 사이즈 줄이기) (0) | 2014.11.04 |
---|---|
Mysql 5.0 테이블 생성시 Invalid default value for '필드' 오류대처법 (0) | 2014.10.08 |
Mysql 특정값 제외하고 Select 하기. Not IN (0) | 2014.10.07 |
Mysql Table 일괄 삭제 방법. (0) | 2014.09.29 |
mysql . update replace(치환) 방법 (mysql 팁) (0) | 2014.09.26 |