본문 바로가기
IT/MYSQL

MYSQL - 문자를 숫자로, 숫자를 문자로 치환하기(CAST)

by 꿀코 2023. 3. 10.
반응형

MYSQL에서 쿼리를 작성하다 보면 문자를 숫자로 치환하거나 숫자를 문자로 치환해야 하는 경우가 많습니다. 이럴 경우 CAST() 함수를 활용하여 치환을 수행할 수 있습니다. 특히, CHAR 컬럼에 숫자로 저장된 데이터를 정렬할 경우 CAST() 함수가 반드시 필요합니다.

 

 

CAST() 사용 방법

MYSQL에서 CAST() 함수를 활용하여 대상 컬럼을 원하는 TYPE으로 변경할 수 있습니다.

 

1) 기본 문법

  • SELECT CAST(COL1 AS TYPE);

 

2) 예시

# 묵시적으로 타입을 변환하여 계산한 결과 정수로 리턴
SELECT 10/'5';
 -> 2
 
 # 정수 타입의 사칙연산 계산은 실수로 리턴
 SELECT 10/5;
 -> 2.0000
 
 # 명시적으로 타입을 변환하여 계산한 결과 올바르게 실수로 리턴
 SELECT 10/CAST('5' AS UNSIGNED);
 -> 2.0000

 

3) 변환할 수 있는 TYPE의 종류

BINARY 바이너리 타입
CHAR 지정 문자열 타입
DATE 시간(연, 월, 일) 타입
DATETIME 시간(연, 월, 일, 시, 분, 초) 타입
TIME 시간(시, 분, 초) 타입
DECIMAL 고정 소수점 타입
JSON(5.7.8 버전 이상) JSON 타입
SIGNED 부호 있는 숫자 타입
UNSIGNED 부호 없는 숫자 타입

 

 

CAST() 자주 사용하는 예시

MYSQL에서 CAST() 함수는 정렬할 때 가장 많이 사용됩니다. 특히, VARCHAR나 CHAR 타입의 컬럼에 숫자로 기입된 데이터를 정렬할 때 사용하는 경우가 많습니다.

 

1) 예시 데이터

NO → CHAR(1)

NAME → VARCHAR(5)

NO NAME
1 문동은
10 박연진
2 정재준
3 이사라
4 손명오

 

2) 정렬 예시

SELECT * FROM EX_TABLE ORDER BY CAST(NO AS UNSIGNED);
NO NAME
1 문동은
2 정재준
3 이사라
4 손명오
10 박연진

정렬하기 전에는 컬럼 타입이 CHAR였기 때문에 2행에 위치하던 [NAME = 박연진] 데이터가 UNSIGNED로 캐스트 하여 정렬한 결과 마지막 행에 위치하는 것을 확인할 수 있습니다.

 

 

 

헤겐 올라운더컵 뚜껑, 화이트, 1개
반응형

댓글