sql >> Databáze >  >> RDS >> Mysql

něco o ansi_nulls

S ANSI_NULLS OFF , NULL = NULL vyhodnotí jako TRUE .

Se ANSI_NULLS ON (výchozí nastavení), NULL = NULL se vyhodnotí jako NULL .

NULL IS NULL se vždy vyhodnotí jako TRUE .

V MySQL však nemůžete vypnout ANSI_NULLS. Pravděpodobně máte na mysli MS SQL Server.

Budoucí verze MS SQL Server nebudou podporovat ANSI_NULLS OFF , takže bych to nepoužil.

Měli byste nechat ANSI_NULLS ON a použijte IS NULL vyhodnotit, zda je něco NULOVÉ.

Pokud máte problémy se zapamatováním toho, jak ve výchozím nastavení funguje NULL (ANSI_NULLS ON), měli byste hodnotu NULL považovat za „neznámé ". Pokud jsou například v místnosti dva cizí lidé, jejich jména jsou NULL. Pokud váš dotaz zní:"Jsou jejich jména stejná?" Vaše odpověď JE NULL.

Nyní řekněme, že Bob je v místnosti pouze s jedním cizincem, jehož jméno je NULL. Opět odpověď na váš dotaz "Jsou jejich jména stejná?" JE NULL. Všimněte si, že pokud něco porovnáte s hodnotou NULL, vaše odpověď JE NULL.



  1. Jak správně používat Oracle ORDER BY a ROWNUM?

  2. django+mysql=Objekt 'DatabaseWrapper' nemá žádný atribut Chyba 'Databáze'

  3. Jak najít neexistující data z jiné tabulky pomocí JOIN?

  4. Odebrat SCHEMABINDING z funkce definované uživatelem na serveru SQL Server