여기서 말하는 경우는 ASCII() 함수의 인수로 빈 문자열('')을 전달하는 상황을 의미합니다. 이처럼 빈 문자열이 주어지면 ASCII() 함수는 0을 반환합니다.
예제
mysql> Select ASCII('');
+-----------+
| ASCII('') |
+-----------+
| 0 |
+-----------+
1 row in set (0.00 sec)왜 0이 반환될까?
ASCII() 함수는 문자열에서 가장 왼쪽에 있는 문자의 숫자 코드값(아스키 코드)을 반환하는 함수입니다. 그런데 빈 문자열에는 어떤 문자도 포함되어 있지 않기 때문에, 함수가 참조할 문자가 존재하지 않습니다. 이 경우 MySQL은 오류를 발생시키는 대신 0을 반환하도록 동작합니다.
함께 알아두면 좋은 점
- 빈 문자열('') → 0 반환
- 인수로 NULL을 전달 → NULL 반환
- 일반 문자열(예: 'A') → 해당 문자의 아스키 코드값(65) 반환
따라서 데이터 검증 로직을 작성할 때 빈 문자열과 NULL의 반환값이 서로 다르다는 점을 유의하면, 예상치 못한 버그를 예방하는 데 도움이 됩니다.