sql >> Database >  >> RDS >> Mysql

Waarom is null<>null=null in mysql

Omdat elke vergelijkingsoperator boven NULL verschijnen in in een sql-filter zou (en zal) de rij niet moeten selecteren.

U moet de null-safe-operator <=> . gebruiken om te vergelijken met kolom met NULL waarden en andere NOT NULL waarde maar <=> retourneert 1 wanneer beide operanden NULL zijn omdat NULL wordt nooit beschouwd als gelijk aan NULL .

Dit is een voorbeeld van een situatie waarin een nulveilige operator nuttig is:

Je hebt een tafel:

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

En u wilt alle telefoonnummers selecteren die niet uit Spanje komen (landcode 34). De eerste poging is meestal:

SELECT Number FROM Phones WHERE CountryCode <> 34;

Maar je merkt dat er telefoons zijn zonder landcode (NULL-waarde) die niet worden vermeld en je wilt ze in je resultaat opnemen omdat ze niet uit Spanje komen:

SELECT Number FROM Phones WHERE CountryCode <=> 34;


  1. PDO:Databaseverbinding op externe website

  2. een kolom bijwerken door een waarde af te trekken

  3. Welke vaardigheden en kennis hebben databaseontwerpers nodig?

  4. Hoe praat Access met ODBC-gegevensbronnen? Deel 6