컬럼 형식이 문자열이지만 숫자로만 되있었다.
이럴경우 정렬 시 1, 2, 3, ... 으로 나가다가 9, 10 이런 순서대로 나가야하는데
문자열 형식이라 1, 10, 2, 3, 4, ..., 9 이런 순서로 나오게 된다.
그래서 select 해서 가져올 때나 정렬을 할 때 문자열을 숫자로 변환을 해줘야한다.
형식이 문자열인 컬럼을 숫자 형태로 바꿀 때는 두가지 방법이 있다.
테이블명이 USER 이고 컬럼명이 COUNT라고 가정했을 때,
1) CAST 함수를 써서 타입 변경
UNSIGNED(INT) 또는 SIGNED(INT) 로 변경한다.
SIGNED 는 음수 표현할 때 사용, UNSIGNED 는 음수를 표현하지 않아도 될 때 사용한다
2) 컬럼에 +0 또는 *1 과 같이 값에 변화를 주지않으면서 숫자를 계산하게 만들어 숫자형태로 강제 변환
SELECT 시 해도되고 ORDER 시 해도된다.
이럴경우 정렬 시 1, 2, 3, ... 으로 나가다가 9, 10 이런 순서대로 나가야하는데
문자열 형식이라 1, 10, 2, 3, 4, ..., 9 이런 순서로 나오게 된다.
그래서 select 해서 가져올 때나 정렬을 할 때 문자열을 숫자로 변환을 해줘야한다.
형식이 문자열인 컬럼을 숫자 형태로 바꿀 때는 두가지 방법이 있다.
테이블명이 USER 이고 컬럼명이 COUNT라고 가정했을 때,
1) CAST 함수를 써서 타입 변경
UNSIGNED(INT) 또는 SIGNED(INT) 로 변경한다.
SIGNED 는 음수 표현할 때 사용, UNSIGNED 는 음수를 표현하지 않아도 될 때 사용한다
SELECT CAST(COUNT AS UNSIGNED) FROM USER ORDER BY COUNT DESC;
2) 컬럼에 +0 또는 *1 과 같이 값에 변화를 주지않으면서 숫자를 계산하게 만들어 숫자형태로 강제 변환
SELECT 시 해도되고 ORDER 시 해도된다.
SELECT COUNT FROM USER ORDER BY (COUNT+0) DESC;