sql >> Databasteknik >  >> RDS >> Mysql

något om ansi_nulls

Med ANSI_NULLS OFF , NULL = NULL utvärderas till TRUE .

Med ANSI_NULLS ON (standard), NULL = NULL utvärderas till NULL .

NULL IS NULL utvärderas alltid till TRUE .

Men i MySQL kan du inte stänga av ANSI_NULLS. Du tänker förmodligen på MS SQL Server.

Framtida versioner av MS SQL Server kommer inte att stödja ANSI_NULLS OFF , så jag skulle inte använda det.

Du bör lämna ANSI_NULLS ON och använd IS NULL för att utvärdera om något ÄR NULL.

Om du har problem med att komma ihåg hur NULL fungerar som standard (ANSI_NULLS ON), bör du tänka på NULL som "okänt ". Till exempel, om det finns två främlingar i rummet, är deras namn NULL. Om din fråga är "Är deras namn samma?" Ditt svar ÄR NULL.

Låt oss nu säga att Bob är i rummet med bara en främling, vars namn ÄR NULL. Återigen svaret på din fråga "Är deras namn samma?" ÄR INGET. Observera att om du jämför något med NULL så ÄR ditt svar NULL.



  1. InnoDB infogar mycket långsamt och saktar ner

  2. Jämföra datum lagrade som varchar

  3. Varför är 1899-12-30 nolldatumet i Access / SQL Server istället för 12/31?

  4. Hur håller man en enda SQL Server-anslutningsinstans öppen för flera begäranden i C#?