Mysql
 sql >> Database >  >> RDS >> Mysql

qualcosa su ansi_nulls

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.