MySQL에서는 UNHEX() 함수의 인수로 유효하지 않은 16진수 문자열을 전달하면 NULL을 반환합니다. 아래 예제를 통해 이를 직접 확인해 보겠습니다.
예제
mysql> Select UNHEX('ANK96598');
+-------------------+
| UNHEX('ANK96598') |
+-------------------+
| NULL |
+-------------------+
1 row in set (0.00 sec)유효한 16진수 자릿수는 '0~9', 'A~F', 'a~f' 범위의 문자로 제한됩니다. 위 쿼리에서 사용된 'ANK96598'에는 이 범위를 벗어나는 문자인 'K'가 포함되어 있기 때문에, MySQL은 해당 입력을 유효한 16진수 값으로 해석할 수 없으며, 그 결과 NULL을 반환하게 됩니다.
따라서 UNHEX() 함수를 실무에서 활용할 때는 인수가 반드시 유효한 16진수 문자(0-9, A-F, a-f)로만 구성되어 있는지 사전에 검증하는 것이 좋습니다. 그렇지 않으면 예상치 못한 NULL 값으로 인해 데이터 처리 로직에 오류가 발생할 수 있습니다.