본문으로 바로가기

[MySql] String To Int

category Helloworld!/MySql 2016. 5. 16. 10:15
컬럼 형식이 문자열이지만 숫자로만 되있었다.
이럴경우 정렬 시 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;