반응형
숫자만 들어있는 컬럼이 있는데, 정렬을 해 보니,
1
11
12
13
2
21
이런씩으로 정렬되는 경우를 본 적이 있을 것이다.
컬럼의 정의가 INT가 아닌 VARCHAR로 되어 있어서 그런 경우가 있다.
업무상 이렇게 데이터베이스를 설계할 경우도 있으니 잘잘못은 패스~ 하고
이렇경우 어떻게 정렬하면 재대로 표현될까.. 하니...
MySQL에는 (CAST)연산자라는게 있다.
cast type의 종류는
binary
char
signed (부호있는 숫자)
date
datetime
time
unsigned (부호없는 숫자)
등이 있다.
이용 방법은
정렬할 때에는
select * from customers order by cast(customers_id as unsigned);
문자를 숫자로 변환할 때에는
select cast('1' as unsigned) as test
숫자를 문자로 변환할 때에는
select cast(2 as char(1)) as test
select cast('1' as unsigned) as test
숫자를 문자로 변환할 때에는
select cast(2 as char(1)) as test
이렇게 이용하면 된다.
반응형
'데이터베이스 > MySQL' 카테고리의 다른 글
[MySQL]날짜관련 처리함수 (0) | 2016.10.13 |
---|---|
[PHP] 대문자를 소문자로~ 소문자를 대문자로~ (0) | 2016.10.13 |