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

MySQL QUOTE() 함수의 인수가 NULL일 때 반환되는 값은?

QUOTE() 함수와 NULL 처리

MySQL에서 QUOTE() 함수는 문자열을 SQL 문장에서 안전하게 사용할 수 있도록 작은따옴표(')로 감싸고, 내부의 특수 문자를 이스케이프 처리해 주는 함수입니다.


그렇다면 만약 QUOTE() 함수의 인수로 NULL이 전달되면 어떻게 될까요? MySQL은 이 경우 오류를 발생시키지 않고 그대로 NULL을 반환합니다.


예제 1: 단순히 NULL을 인수로 전달하는 경우

mysql> SELECT QUOTE(NULL);

+-------------+
| QUOTE(NULL) |
+-------------+
| NULL        |
+-------------+

1 row in set (0.00 sec)

위 예제에서 확인할 수 있듯이, 인수가 NULL이면 QUOTE(NULL)의 실행 결과 역시 NULL입니다. 따옴표로 감싼 빈 문자열('')이 반환되는 것이 아니라는 점에 유의해야 합니다.


예제 2: 테이블 조회 시 NULL과 함께 사용하는 경우

mysql> SELECT Name, QUOTE(NULL) FROM student WHERE id = 1;

+--------+-------------+
| Name   | QUOTE(NULL) |
+--------+-------------+
| Gaurav | NULL        |
+--------+-------------+

1 row in set (0.08 sec)

위 예제는 student 테이블에서 id가 1인 행을 조회하면서 QUOTE(NULL)의 결과를 함께 출력한 것입니다. Name 컬럼의 값 'Gaurav'는 정상적으로 조회되지만, QUOTE(NULL)의 결과는 NULL로 표시됩니다.


정리

QUOTE() 함수에 NULL이 입력되면 그대로 NULL이 반환됩니다. 이는 SQL의 일반적인 동작 방식으로, NULL을 인수로 받는 대부분의 함수가 NULL을 반환하는 것과 같은 원리입니다.


따라서 실무에서 쿼리를 작성할 때 인수로 전달되는 값이 NULL일 가능성이 있다면, IFNULL() 또는 COALESCE() 같은 함수를 활용해 NULL 여부를 먼저 처리해 주는 것이 안전합니다.