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 

 

댓글목록

등록된 댓글이 없습니다.

총 게시물 24 개, 페이지 1 RSS
제목 작성자
MYSQL date, time 함수.. unix_timestamp H
MYSQL 날짜가 yyyy-mm-dd 형식으로 저장되어 있는 데이타 유닉스타임으로 변환 H
MYSQL 중복데이타 select H
MYSQL 구분자를 포함하는 데이타 select H
MYSQL 날짜가 Y|m|d 형식으로 저장되어 있는 데이타 컬럼 값 붙여서 유닉스타임으로 변환 H
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
게시물 검색