최종 수정: 에
UNHEX
설명
UNHEX 함수는 십육진수 문자열을 원래 문자열로 되돌리며, HEX 함수의 역연산을 수행합니다. 이 함수는 십육진수 문자(0-9, A-F, a-f) 두 개를 한 바이트로 변환합니다. UNHEX_NULL 함수도 동일한 방식으로 작동하며, 유효하지 않은 입력이 들어오면 NULL을 반환합니다. 이 함수들은 바이너리 데이터, 암호화된 데이터 또는 십육진수 표현이 필요한 데이터를 처리할 때 유용합니다.
팁
이 함수는 버전 3.0.6부터 지원됩니다.
구문
UNHEX(<str>)
매개변수
| 매개변수 | 설명 |
|---|---|
<str> | 십육진수 문자열 |
반환 값
십육진수에서 디코딩한 원래 문자열을 나타내는 VARCHAR 타입을 반환합니다.
디코딩 규칙:
- 허용되는 문자 범위: 0-9, a-f, A-F
- 십육진수 문자 두 개를 한 바이트로 변환합니다.
- 결과에 출력할 수 없는 문자가 포함될 수 있습니다.
특수한 경우(UNHEX):
- 입력이 NULL이면 NULL을 반환합니다.
- 문자열 길이가 0이거나 홀수이면 빈 문자열을 반환합니다.
- 십육진수가 아닌 문자가 포함되어 있으면 빈 문자열을 반환합니다.
특수한 경우(UNHEX_NULL):
- 입력이 NULL이면 NULL을 반환합니다.
- 문자열 길이가 0이거나 홀수이면 NULL을 반환합니다.
- 십육진수가 아닌 문자가 포함되어 있으면 NULL을 반환합니다.
예제
select unhex('@');
+------------+
| unhex('@') |
+------------+
| |
+------------+
select unhex_null('@');
+-----------------+
| unhex_null('@') |
+-----------------+
| NULL |
+-----------------+
select unhex('41');
+-------------+
| unhex('41') |
+-------------+
| A |
+-------------+
select unhex('4142'), unhex('48656C6C6F');
+---------------+----------------------+
| unhex('4142') | unhex('48656C6C6F') |
+---------------+----------------------+
| AB | Hello |
+---------------+----------------------+
- NULL 처리 비교
SELECT UNHEX(NULL), UNHEX_NULL(NULL);
+-------------+-----------------+
| UNHEX(NULL) | UNHEX_NULL(NULL) |
+-------------+-----------------+
| NULL | NULL |
+-------------+-----------------+
- UTF-8 문자 디코딩
SELECT UNHEX('E4B8AD'), UNHEX('E69687');
+-----------------+-----------------+
| UNHEX('E4B8AD') | UNHEX('E69687') |
+-----------------+-----------------+
| 中 | 文 |
+-----------------+-----------------+
- 십육진수 인코딩-디코딩 순환 검증
SELECT UNHEX(HEX('Hello')), UNHEX(HEX('Test123'));
+---------------------+------------------------+
| UNHEX(HEX('Hello')) | UNHEX(HEX('Test123')) |
+---------------------+------------------------+
| Hello | Test123 |
+---------------------+------------------------+
키워드
UNHEX, UNHEX_NULL, HEX