Con ANSI_NULLS OFF
, NULL = NULL
se evalúa como TRUE
.
Con ANSI_NULLS ON
(el valor predeterminado), NULL = NULL
evalúa a NULL
.
NULL IS NULL
siempre se evalúa como TRUE
.
Sin embargo, en MySQL, no puede desactivar ANSI_NULLS. Probablemente esté pensando en MS SQL Server.
Las versiones futuras de MS SQL Server no admitirán ANSI_NULLS OFF
, así que no lo usaría.
Deberías dejar ANSI_NULLS ON
y use IS NULL
para evaluar si algo ES NULL.
Si tiene problemas para recordar cómo funciona NULL de forma predeterminada (ANSI_NULLS ON), debe pensar en NULL como "desconocido ". Por ejemplo, si hay dos extraños en la habitación, sus nombres son NULL. Si su consulta es, "¿Son los mismos nombres?" Su respuesta ES NULL.
Ahora, digamos que Bob está en la habitación con un solo extraño, cuyo nombre ES NULL. Nuevamente la respuesta a su consulta "¿Son sus nombres iguales?" ES NULO. Tenga en cuenta que si compara algo con NULL, su respuesta ES NULL.