MySQL CAST() 함수로 VARCHAR를 INT로 변환하기
MySQL에서 VARCHAR 타입의 데이터를 INT(정수형)로 변환하려면 CAST() 함수를 사용할 수 있습니다. CAST() 함수는 하나의 데이터 타입을 다른 데이터 타입으로 안전하게 형변환해 주는 표준 SQL 함수입니다.
CAST() 함수 기본 문법
CAST(anyValue AS dataType)
괄호 안에 변환하고자 하는 값을 먼저 쓰고, AS 뒤에 원하는 데이터 타입을 지정하면 됩니다.
예제 테이블 생성
실습을 위해 CREATE 명령어로 VARCHAR 타입 컬럼을 가진 테이블을 생성해 보겠습니다.
mysql> create table VarchartointDemo
-> (
-> Value varchar(100)
-> );
Query OK, 0 rows affected (0.51 sec)
테이블 생성이 완료되면 INSERT 명령어를 사용해 샘플 데이터를 입력합니다.
mysql> insert into VarchartointDemo values('123');
Query OK, 1 row affected (0.26 sec)
mysql> insert into VarchartointDemo values('234');
Query OK, 1 row affected (0.16 sec)SELECT 문으로 저장된 모든 레코드를 확인해 보겠습니다.
mysql> select *from VarchartointDemo;
실행 결과는 다음과 같습니다.
+-------+
| Value |
+-------+
| 123 |
| 234 |
+-------+
2 rows in set (0.00 sec)
현재 '123'과 '234'는 문자열(VARCHAR) 상태로 저장되어 있습니다.
VARCHAR를 INT로 캐스트하는 방법
VARCHAR 값을 정수형으로 변환하려면 아래와 같은 문법을 사용합니다.
SELECT CAST(yourColumnName AS anyDataType) FROM yourTableName;
이 문법을 실제 테이블에 적용해 보겠습니다. MySQL에서는 부호 없는 정수로 변환하기 위해 UNSIGNED 타입을 지정할 수 있습니다.
mysql> SELECT CAST(Value AS UNSIGNED) FROM VarchartointDemo;
실행 결과는 다음과 같습니다.
+-------------------------+
| CAST(Value AS UNSIGNED) |
+-------------------------+
| 123 |
| 234 |
+-------------------------+
2 rows in set (0.00 sec)
위 출력 결과를 보면 문자열이었던 값들이 성공적으로 정수형(INT)으로 변환된 것을 확인할 수 있습니다.
참고: CONVERT() 함수 활용
MySQL에서는 CAST() 외에도 CONVERT() 함수를 사용해 동일한 결과를 얻을 수 있습니다. 예를 들어 SELECT CONVERT(Value, UNSIGNED) FROM VarchartointDemo;처럼 작성하면 같은 방식으로 형변환이 가능합니다. 또한 숫자가 아닌 문자가 포함된 경우 경고가 발생할 수 있으므로, 변환 전 데이터의 유효성을 점검하는 것이 좋습니다.