반응형
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로 캐스트 하여 정렬한 결과 마지막 행에 위치하는 것을 확인할 수 있습니다.
반응형
'IT > MYSQL' 카테고리의 다른 글
MYSQL - INSERT, UPDATE, DELETE 데이터 삽입, 수정, 삭제하기 (0) | 2023.09.07 |
---|---|
MYSQL - GROUP BY HAVING 절 사용하기 (0) | 2023.03.11 |
MYSQL - REPLACE 사용방법 (여러 개 사용 포함) (0) | 2023.03.09 |
MYSQL - 알파벳 대소문자와 공백 제거하기(UPPER, LOWER, TRIM) (0) | 2023.03.08 |
MYSQL - SUBSTRING, LEFT, RIGHT 문자열 자르기 함수 사용 방법 (0) | 2023.03.06 |
댓글