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 값을 필드와 비교하기 위해 사용합니다.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
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
또는0
null인 경우에도 오퍼랜드의 값에 따라 달라집니다.
대조적으로:
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
'programing' 카테고리의 다른 글
cygwin에서 mysql에 연결 (0) | 2022.10.19 |
---|---|
도커 MariaDB/Mysql 덤프 (0) | 2022.10.19 |
새로운 DB 버전에서 이전 Flyway 마이그레이션이 비활성화되는 경우 어떻게 처리합니까? (0) | 2022.10.19 |
Ubuntu에 mysql-server를 설치하는 방법 (0) | 2022.10.19 |
Vue Google 차트 사용 - Geochart.데이터 변경 시 차트가 새로고침되지만 범례가 삭제됩니다. (0) | 2022.10.19 |