MYSQL | 문자열로 된 숫자를 정렬하기
작성자
MySQL로 저장을 할 때 숫자 (정수형) 를 문자열로 하여 저장하는 경우가 있다. 정확히 하자면 그 데이터가 갖는 속성에 맞춰서 알맞은 자료형을 선택해야 하지만 (성적, 키 같은 데이터는 정수형으로 이름이나 주소 등은 문자열로 저장해야 된다.) 경우에 따라서는 예외로 숫자를 문자열로 저장할 수도 있다.
사람이 보기에는 1, 2, 11, 12, 21, 23 이 있을 때 문자열이나 숫자나 구분이 없지만, 어떤 자료형인가에 따라 정렬을 시켜보면,
 
정수형 -> 1, 2, 11, 12, 21, 23
문자열 -> 1, 11, 12, 2, 21, 23
 
이렇게 서로 다른 결과를 가지게 된다.
이때,  문자열인 숫자를 정수형 처럼 정렬을 하고 싶으면,

정렬 대상이 되는 칼럼값에 ‘ +0 ‘ 을 해주기만 하면된다. 
select * from table order by column+0 

 

댓글목록

등록된 댓글이 없습니다.

총 게시물 93 개, 페이지 4 RSS
제목 작성자
MYSQL 년월일시간분(예:201406241621)으로 저장되어 있는 데이타를 년-월-일 시간:분:초로 H
MYSQL Column '컬럼명' in order clause is ambiguous H
MYSQL mysql update할때 select함께 하기 H
MYSQL 한글이 아닌값 검색 H
MYSQL 문자열을 치환 REPLACE() H
MYSQL 숫자의 천단위 구분자 삽입 FORMAT() H
MYSQL 문자열을 특정 구분자를 포함 합치기 CONCAT_WS() H
MYSQL 문자열을 합치기 CONCAT() H
MYSQL 문자열의 길이와 Byte CHAR_LENGTH(), LENGTH() H
MYSQL 문자열로 된 숫자를 정렬하기 H
MYSQL MySQL error 1242 : subquery returns more than 1 row H
MYSQL SQL / MySQL 서브쿼리(SubQuery) H
MYSQL 특수 비교 연산자와 검색 결과의 정렬 : like, between, in H
MYSQL Mysql 에서 php explode() 함수와 같은 효과 H
MYSQL ORDER by 정렬(임의적인 순번) H
게시물 검색