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

빈 문자열이 전달되면 MySQL ASCII() 함수는 무엇을 반환할까?

여기서 말하는 경우는 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의 반환값이 서로 다르다는 점을 유의하면, 예상치 못한 버그를 예방하는 데 도움이 됩니다.