> 데이터 베이스 > MySQL 튜토리얼 > MySQL의 NULL 안전 같음 연산자()는 어떻게 작동합니까?

MySQL의 NULL 안전 같음 연산자()는 어떻게 작동합니까?

Linda Hamilton
풀어 주다: 2025-01-05 16:29:45
원래의
891명이 탐색했습니다.

How Does MySQL's NULL-Safe Equals Operator () Work?

MySQL의 NULL과 같지 않음 연산자: <=>

SQL 쿼리 작업 시 <=> 연산자는 의미와 구문에 대한 질문을 제기합니다. 이 가이드는 이 연산자와 해당 응용 프로그램에 대한 심층적인 이해를 제공합니다.

이해 <=>

<=> 연산자는 NULL 안전 등호 연산자라고도 합니다. 일반 등호 연산자(=)와 유사하지만 NULL 값을 처리할 때 중요한 차이점이 있습니다.

일반 등호 연산자와 NULL 안전 등호 연산자

일반 등호 연산자(=)는 피연산자가 같지 않으면 0을 반환하고 같으면 1을 반환합니다. 그러나 NULL 값을 특수한 경우로 처리하여 이러한 비교 결과로 NULL이 생성됩니다.

반면 <=> 연산자는 NULL 값을 다르게 처리합니다. 피연산자 중 하나 또는 둘 다 NULL인지 여부에 관계없이 피연산자가 같지 않으면 0을 반환하고 같으면 1을 반환합니다. 즉,

  • 'a' <=> 'b'는 0
  • 'a'로 평가됩니다. <=> 'a'는 1
  • 'a'로 평가됩니다. <=> NULL은 0
  • NULL <=>으로 평가됩니다. NULL은 1로 평가됩니다.

<=>

의 유용성은 <=> 연산자가 특히 좋습니다. 비교의 두 피연산자 모두 NULL 값을 포함할 수 있고 두 피연산자 간에 일관된 비교 결과가 필요한 시나리오에서 유용합니다. columns.

이 연산자의 또 다른 실제 적용은 쿼리를 수정할 필요 없이 자리 표시자가 스칼라 값과 NULL 값을 모두 원활하게 처리할 수 있는 준비된 문에 있습니다.

관련 연산자

MySQL은 값을 비교하기 위한 다른 연산자도 제공합니다. NULL:

  • IS NULL: 피연산자가 NULL이면 1로 평가하고, 그렇지 않으면 0으로 평가합니다.
  • IS NOT NULL: 평가합니다. 피연산자가 NULL이 아니면 1로, 0으로 그렇지 않은 경우.

이러한 연산자는 MySQL <=> 연산자의 특수화로 간주될 수 있습니다. 예를 들어,

  • 'a' IS NULL'a' <=> NULL
  • 'a' IS NOT NULLNOT('a' <=> NULL)

지원과 호환성

<=> 연산자는 MySQL에만 적용되며 다른 데이터베이스에서는 지원되지 않습니다.

SQL:2003 표준에는

IS [NOT] DISTINCT FROM은 MySQL과 동일하게 동작합니다. <=> 연산자.

또한 다음과 같은 복잡하지만 보편적으로 지원되는 표현식도 동일한 결과를 얻을 수 있습니다.

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
     THEN 1
     ELSE 0
END = 1
로그인 후 복사

위 내용은 MySQL의 NULL 안전 같음 연산자()는 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿