sql >> Databasteknik >  >> RDS >> Mysql

Varför finns null<>null=null i mysql

Eftersom vilken jämförelseoperator som helst över NULL visas i ett sql-filter bör (och gör det) göra att raden inte väljs.

Du bör använda null safe operator <=> för att jämföra med kolumn som innehåller NULL värden och andra NOT NULL värde men <=> returnerar 1 när båda operanderna är NULL eftersom NULL anses aldrig vara lika med NULL .

Detta är ett exempel på en situation där null safe-operatör är användbar:

Du har ett bord:

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

Och du vill välja alla telefonnummer som inte kommer från Spanien (landskod 34). Första försöket är vanligtvis:

SELECT Number FROM Phones WHERE CountryCode <> 34;

Men du märker att det finns telefoner utan landskod (NULL-värde) som inte finns med och du vill inkludera dem i ditt resultat eftersom de inte är från Spanien:

SELECT Number FROM Phones WHERE CountryCode <=> 34;


  1. Fel:kunde inte initiera huvudinformationsstrukturen när man utförde masterslavreplikering i MySQL

  2. MySQL sök och ersätt syntaxfel

  3. inklusive saknade (nollantal) rader när du använder GROUP BY

  4. Få alla åtgärder från de tre senaste användarna