Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es einen Grund, <=> (Null-Safe-Equals-Operator) in MySQL nicht anstelle von =zu verwenden?

Sie haben nach einigen Beispielen aus der Praxis gefragt. Hier ist ein falscher. Sagen wir, Sie haben ein Heim-Jugendprogramm oder ähnliches, und eine der Anforderungen ist, dass die Kinder ein Zimmer nur mit jemandem des gleichen Geschlechts teilen. Sie haben ein nullable M/F-Feld in Ihrer Datenbank - nullable, weil Ihr Daten-Feed unvollständig ist (Sie suchen immer noch nach einigen Daten). Ihr Zimmer-Matching-Code sollte definitiv nicht mit Schülern übereinstimmen, bei denen t1.Gender<=>t2 .Geschlecht, weil es am Ende dazu führen könnte, dass zwei Kinder unbekannten Geschlechts zusammenpassen, die möglicherweise unterschiedliches Geschlecht haben. Stattdessen stimmen Sie dort überein, wo sie gleich und nicht beide null sind.

Das ist nur ein Beispiel. Ich gebe zu, dass das Verhalten von NULL und der = Operator haben im Laufe der Jahre viel Verwirrung gestiftet, aber letztendlich liegt der Fehler wahrscheinlich in der Fülle von Online-MySQL-Tutorials, die nicht erwähnen, wie NULL mit Operatoren interagiert, noch von der Existenz des <=> Betreiber.