Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

16진수가 아닌 값을 UNHEX() 함수의 인수로 전달하면 MySQL은 무엇을 반환할까?

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 값으로 인해 데이터 처리 로직에 오류가 발생할 수 있습니다.