Con ANSI_NULLS OFF
, NULL = NULL
restituisce TRUE
.
Con ANSI_NULLS ON
(l'impostazione predefinita), NULL = NULL
restituisce NULL
.
NULL IS NULL
restituisce sempre TRUE
.
Tuttavia, in MySQL, non è possibile disattivare ANSI_NULLS. Probabilmente stai pensando a MS SQL Server.
Le versioni future di MS SQL Server non supporteranno ANSI_NULLS OFF
, quindi non lo userei.
Dovresti lasciare ANSI_NULLS ON
e usa IS NULL
per valutare se qualcosa È NULLO.
Se hai problemi a ricordare come funziona NULL per impostazione predefinita (ANSI_NULLS ON), dovresti pensare a NULL come "sconosciuto ". Ad esempio, se ci sono due estranei nella stanza, i loro nomi sono NULL. Se la tua domanda è "I loro nomi sono gli stessi?" La tua risposta È NULL.
Ora, diciamo che Bob è nella stanza con un solo estraneo, il cui nome È NULL. Ancora una volta la risposta alla tua domanda "I loro nomi sono gli stessi?" È ZERO. Nota che se confronti qualcosa con NULL, la tua risposta È NULL.