Vinzenz Mai: NULL != NULL -> false?

Beitrag lesen

Hallo,

Jetzt frage ich mich nur, warum das auch false ist:
select if(NULL != NULL,'true','false');

wieso fragst Du Dich das? Das ist doch wunderbar erklärt, auch schon oft im derzeit nur über Google durchsuchbaren Archiv.

+---------------------------------+
| if(NULL != NULL,'true','false') |
+---------------------------------+
| false                           |
+---------------------------------+

Vergleichsoperationen mit NULL als mindestens einem Operanden ergeben in SQL IMMER den Wert NULL. Der Wert NULL ist keiner der Werte, die als true gelten. Wo ist das Problem?

Vielleicht weiß das ja auch jemand hier?

Aber wenn du "IS NULL", bzw. "IS NOT NULL" schreibst bist du auf jeden Fall auf der sicheren Seite.
http://dev.mysql.com/doc/refman/5.0/en/working-with-null.html

Hättest Du weitergeklickt und gelesen:

http://dev.mysql.com/doc/refman/5.0/en/problems-with-null.html

<zitat>
    In SQL, the NULL value is never true in comparison to any other value,
    even NULL. An expression that contains NULL always produces a NULL value
    unless otherwise indicated in the documentation for the operators and
    functions involved in the expression.
</zitat>

Freundliche Grüße

Vinzenz