programing

MySQL의 연산자 <=>는 무엇입니까?

kingscode 2022. 10. 19. 21:18
반응형

MySQL의 연산자 <=>는 무엇입니까?

이전 개발자가 작성한 코드를 작업 중인데 쿼리에 이렇게 적혀 있어요

WHERE p.name <=> NULL

무인 does does 가 뭐죠?<=>리리리 무엇 ?엇? ????와 동등합니까?=니면면 구문 ?? ????

아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 아, 맞다. 그 을 알고 있다.<>=!=MySQL에 있습니다.

TL;DR

안전 평등 연산자입니다.

★★★★★★★★★★★★★와 같이=두는 산, 두, 음, 음, 음, 음, 음 중 입니다.0 않다) (같지 않다)1 (7) 아, 하다'a' <=> 'b' 율율0 ★★★★★★★★★★★★★★★★★」'a' <=> 'a' 율율1.

regular반 the과는 = " " 값, "NULL한 할 수 없다NULL가능한 결과로서, 다음과 같이 됩니다.'a' <=> NULL 율율0 ★★★★★★★★★★★★★★★★★」NULL <=> NULL 율율1.

유용성

은 양쪽 에 모두 사용할 수 있는 에 도움이 .NULL두 열 간의 일관된 비교 결과가 필요합니다.

또 다른 사용 사례는 다음과 같은 준비된 문장이 있습니다.

... WHERE col_a <=> ? ...

값 스칼라 값 중 입니다.NULL쿼리에 대해 아무것도 변경하지 않아도 됩니다.

관련 연산자

말고.<=>에도 두 가 가능합니다.NULL ,,IS NULL ★★★★★★★★★★★★★★★★★」IS NOT NULL이므로 ANSI 규격과는 <=>(MySQL 유 ().

MySQL 할 수 .<=>:

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

이를 바탕으로 특정 쿼리(프래그먼트)를 보다 휴대성이 높은 것으로 변환할 수 있습니다.

WHERE p.name IS NULL

지지하다

되었습니다.이것은의 SQL:2003의 MySQL과 합니다.<=>연산자(다음 형식)를 참조해 주세요.

IS [NOT] DISTINCT FROM 

다음 항목은 보편적으로 지원되지만 상대적으로 복잡합니다.

CASE WHEN (a = b) or (a IS NULL AND b IS NULL)
     THEN 1
     ELSE 0
END = 1

<=> 입니다. NULL-safe equal to operator

이 연산자는 = 연산자와 같이 동등 비교를 수행하지만 두 피연산자가 NULL이면 NULL 대신 1을 반환하고, 한 피연산자가 NULL이면 NULL 대신 0을 반환합니다.

메뉴얼은, 여기를 참조해 주세요.

샘플:

IS NOT NULL을 사용해야 합니다(비교 연산자 =와 <> 모두 식 양쪽에 NULL이 있는 UNKNOWN을 나타냅니다).

SELECT * 
FROM table 
WHERE YourColumn IS NOT NULL;

는 null safe equality 연산자를 부정할 수도 있지만 이는 표준 SQL이 아닙니다.

SELECT *
FROM table 
WHERE NOT (YourColumn <=> NULL);

연산자와 동일NULL-safe입니다.

<=> 연산자는 NULL 값을 필드와 비교하기 위해 사용합니다.normal =(표준)인 경우 비교 값 중 하나가 NULL이면 연산자가 NULL을 반환합니다. <=>인 경우 연산자는 true 또는 false를 반환합니다.<=> 연산자는 IS NULL과 동일합니다.

매뉴얼 참조:-

<=>NULL인 합니다.= 가 NULL인 0을 반환합니다.

mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
        -> 1, NULL, NULL

편집:- (, <=> 이외중요사이드 노트 1개를 추가하는 것은 매우 늦었습니다.

사이드 노트:-

<=>이 아닙니다.

NULL 값을 필드와 비교하기 위해 사용되는 NOT <=> 포인트가 하나 더 있습니다.normal != 또는 <> (동일하지 않음)의 경우 비교값 중 하나가 NULL이면 연산자가 NULL을 반환합니다.<=>에 적용되지 않으면 연산자는 true 또는 false를 반환합니다.<=> 연산자는 IS NOT NULL과 동일합니다.

예:-

SELECT NULL != NULL,         //--Result is NULL
   NOT NULL <=> NULL,        //--Result is 0
   NULL IS NOT NULL;         //--Result is 0

<=>는 MySQL의 null-safe "동일한" 연산자입니다.매뉴얼:

NULL-safe equal.이 연산자는 = 연산자와 같이 동등 비교를 수행하지만 두 피연산자가 NULL이면 NULL 대신 1을 반환하고, 한 피연산자가 NULL이면 NULL 대신 0을 반환합니다.

mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
        -> 1, NULL, NULL

<=>NULL-safe equal 연산자입니다.표준 SQL과 동등합니다.is not distinct from 진실표에서 하는 것이 가장 .

a b a <=> b
1 0 거짓의
1 1 진실의
1 무효 false*
무효 무효 참*

* 이 연산자는 다른 연산자와 달리 알 수 없음(null로 표시됨)을 반환하지 않습니다.

NULL-safe equal.이 연산자는 = 연산자와 같이 동등 비교를 수행하지만 두 피연산자가 NULL이면 NULL 대신 1을 반환하고, 한 피연산자가 NULL이면 NULL 대신 0을 반환합니다.

mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1, 1, 0
mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
        -> 1, NULL, NULL

중요성:

NULL 값을 NULL이 아닌 값과 비교하면 NULL이 됩니다. 값이 NULL인지 확인하려면 NULL이 됩니다.

Equality 연산자(<=>)는 NULL을 표준값으로 간주하므로 두 값이 모두 NULL이면 1(NULL 아님)을 반환하고 NULL이면 0(NULL 아님)을 반환합니다.

 SELECT NULL <=> NULL -- 1
 SELECT TRUE <=> TRUE -- 1
 SELECT col1 <=> col2 FROM myTable

MySQL 문서:

NULL-safe equal.이 연산자는 = 연산자와 같이 동등 비교를 수행하지만 두 피연산자가 NULL이면 NULL 대신 1을 반환하고, 한 피연산자가 NULL이면 NULL 대신 0을 반환합니다.

「 」를한 <=>츠키다

SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;

다음 중 하나가 반환됩니다.

1, 1, 0

의 「」의 예.=과 같습니다.

SELECT 1 = 1, NULL = NULL, 1 = NULL;

다음 중 하나가 반환됩니다.

1, NULL, NULL

<=>.=제외)<=> 돌아오지 않다NULL

이것은 NULL - Safe Equal to 연산자입니다.설명을 확인합니다.

mysql> SELECT * FROM t JOIN t2 WHERE t2.ids = t.ids;
+----+------+----+------+
| id | ids  | id | ids  |
+----+------+----+------+
|  1 |    1 |  1 |    1 |
|  2 |    2 |  2 |    2 |
|  5 |    6 |  5 |    6 |
|  6 |    7 |  6 |    7 |
+----+------+----+------+
4 rows in set (0.00 sec)

mysql> SELECT * FROM t JOIN t2 WHERE t2.ids <=> t.ids;
+----+------+----+------+
| id | ids  | id | ids  |
+----+------+----+------+
|  1 |    1 |  1 |    1 |
|  2 |    2 |  2 |    2 |
|  3 | NULL |  3 | NULL |
|  4 | NULL |  3 | NULL |
|  3 | NULL |  4 | NULL |
|  4 | NULL |  4 | NULL |
|  5 |    6 |  5 |    6 |
|  6 |    7 |  6 |    7 |

의 차이점operand1=operand2그리고.operand1<=>operand2그 이전이 다시 돌아온다는 것이다.null단, 2개의 오퍼랜드 중 하나가 늘입니다.하지만 후자의 귀환은1또는0null인 경우에도 오퍼랜드의 값에 따라 달라집니다.

대조적으로:

  • select null = null,돌아가다null; 하지만select null <=> null,돌아가다1
  • select null = 'abc',돌아가다null; 하지만select null <=> 'abc',돌아가다0

언급URL : https://stackoverflow.com/questions/21927117/what-is-this-operator-in-mysql

반응형