sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor er null<>null=null i mysql

Fordi enhver sammenligningsoperator over NULL vises i et sql-filter bør (og gør) gøre rækken ikke markeret.

Du skal bruge null safe operator <=> at sammenligne med kolonne, der indeholder NULL værdier og andre IKKE NULL værdi, men <=> returnerer 1 når begge operander er NULL fordi NULL betragtes aldrig som lig med NULL .

Dette er et eksempel på en situation, hvor null safe-operatør er nyttig:

Du har et bord:

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

Og du vil vælge alle telefonnumre, der ikke er fra Spanien (landekode 34). Det første forsøg er normalt:

SELECT Number FROM Phones WHERE CountryCode <> 34;

Men du bemærker, at der er telefoner uden landekode (NULL-værdi), som ikke er angivet, og du vil inkludere dem i dit resultat, fordi de heller ikke er fra Spanien:

SELECT Number FROM Phones WHERE CountryCode <=> 34;


  1. PHP-kode til at konvertere en MySQL-forespørgsel til CSV

  2. Enhver måde at vælge fra MySQL-tabel, hvor et felt ender med et bestemt tegn/tal?

  3. Hvordan bruger man billeder i Android SQLite, der er større end begrænsningerne for et CursorWindow?

  4. Vælg og rediger lodrette blokke i SQL Server Management Studio ( SSMS) - SQL Server / TSQL selvstudium del 9