в MySQL
Оператор <=>
(космический корабль).
В ANSI SQL
<column> IS NOT DISTINCT FROM <column>
или, если указано выше, не поддерживается
CASE
WHEN
(<column> = <column>) OR (<column> IS NULL AND <column> IS NULL)
THEN 1
ELSE 0
END
Некоторые тестовые запросы и результаты
**Query #1**
SELECT 1 <=> 1 MySQL, CASE WHEN (1 = 1) OR (1 IS NULL and 1 IS NULL) THEN 1 ELSE 0 END ANSI_SQL;
| MySQL | ANSI_SQL |
| ----- | -------- |
| 1 | 1 |
---
**Query #2**
SELECT 0 <=> 0 MySQL, CASE WHEN (0 = 0) OR (0 IS NULL and 0 IS NULL) THEN 1 ELSE 0 END ANSI_SQL;
| MySQL | ANSI_SQL |
| ----- | -------- |
| 1 | 1 |
---
**Query #3**
SELECT 1 <=> NULL MySQL, CASE WHEN (1 = NULL) OR (1 IS NULL and NULL IS NULL) THEN 1 ELSE 0 END ANSI_SQL;
| MySQL | ANSI_SQL |
| ----- | -------- |
| 0 | 0 |
---
**Query #4**
SELECT NULL <=> NULL MySQL, CASE WHEN (NULL = NULL) OR (NULL IS NULL and NULL IS NULL) THEN 1 ELSE 0 END ANSI_SQL;
| MySQL | ANSI_SQL |
| ----- | -------- |
| 1 | 1 |
---
**Query #5**
SELECT 0 <=> NULL MySQL, CASE WHEN (0 = NULL) OR (0 IS NULL and NULL IS NULL) THEN 1 ELSE 0 END ANSI_SQL;
| MySQL | ANSI_SQL |
| ----- | -------- |
| 0 | 0 |
см. демо между <=> (MySQL)
и CASE END (ANSI SQL)
методом.