sql >> Database >  >> RDS >> Mysql

iets over ansi_nulls

Met ANSI_NULLS OFF , NULL = NULL evalueert tot TRUE .

Met ANSI_NULLS ON (de standaard), NULL = NULL evalueert tot NULL .

NULL IS NULL evalueert altijd naar TRUE .

In MySQL kunt u ANSI_NULLS echter niet uitschakelen. U denkt waarschijnlijk aan MS SQL Server.

Toekomstige versies van MS SQL Server bieden geen ondersteuning voor ANSI_NULLS OFF , dus ik zou het niet gebruiken.

Je moet ANSI_NULLS ON en gebruik IS NULL om te evalueren of iets NULL IS.

Als u problemen heeft om te onthouden hoe NULL standaard werkt (ANSI_NULLS AAN), moet u NULL beschouwen als "onbekend ". Als er bijvoorbeeld twee vreemden in de kamer zijn, zijn hun namen NULL. Als uw vraag is:"Zijn hun namen hetzelfde?" Uw antwoord IS NULL.

Laten we nu zeggen dat Bob in de kamer is met slechts één vreemdeling, wiens naam NUL IS. Nogmaals het antwoord op uw vraag "Zijn hun namen hetzelfde?" IS NIETS. Merk op dat als je iets vergelijkt met NULL, je antwoord NULL IS.



  1. PostgreSQL 11 implementeren en beheren:nieuw in ClusterControl 1.7.1

  2. De juiste, of bij voorkeur niet-gelijke operator gebruiken in MySQL

  3. hoe emuleren insert negeer en bij dubbele sleutel update (sql merge) met postgresql?

  4. DAYOFYEAR() Voorbeelden – MySQL