Mysql
 sql >> база данни >  >> RDS >> Mysql

Защо е null<>null=null в mysql

Защото всеки оператор за сравнение над NULL появяването в sql филтър трябва (и прави) да направи редът да не бъде избран.

Трябва да използвате нулев безопасен оператор <=> за сравнение с колона, съдържаща NULL стойности и други NOT NULL стойност, но <=> ще върне 1 когато и двата операнда са NULL защото NULL никога не се счита за равно на NULL .

Това е пример за ситуация, при която нулевият безопасен оператор е полезен:

Имате таблица:

Phones
----
Number
CountryCode (can be NULL) 

И искате да изберете всички телефонни номера, които не са от Испания (код на държавата 34). Първият опит обикновено е:

SELECT Number FROM Phones WHERE CountryCode <> 34;

Но забелязвате, че има телефони без код на държавата (стойност NULL), които не са посочени и искате да ги включите в резултата си, защото не са нито от Испания:

SELECT Number FROM Phones WHERE CountryCode <=> 34;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL заявка, използваща CASE за ИЗБРАНЕ на множество колони

  2. Как да изразя a has many чрез връзка в Entity Framework 5?

  3. SQL актуализира една колона от друга колона в друга таблица

  4. Невалиден тип синтактична грешка=MyISAM в DDL, генериран от Hibernate

  5. Как най-добре да съхранявате потребителска информация и потребителско име и парола