Поискахте примери от реалния свят. Ето един фалшив. Да приемем, че имате жилищна младежка програма или подобна и едно от изискванията е децата да споделят стая само с някой от същия пол. Имате поле M/F с нулеви стойности във вашата база данни - може да се нулира, защото подаването на данни е непълно (все още преследвате някои от данните). Вашият код за съвпадение на стаята определено не трябва да съвпада с учениците, където t1.Gender<=>t2 .Пол, защото може да се окаже съвпадение на две деца от неизвестен пол, които може да са от противоположни полове. Вместо това съпоставяте, където са равни, а не и двете нула.
Това е само един пример. Признавам, че поведението на NULL
и =
операторът причини много объркване през годините, но в крайна сметка грешката вероятно е в множеството онлайн уроци по MySQL, които не споменават как NULL
взаимодейства с операторите, нито за съществуването на <=>
оператор.