Poprosiłeś o kilka przykładów z prawdziwego świata. Oto fałszywy. Załóżmy, że prowadzisz program dla młodzieży lub coś podobnego, a jednym z wymagań jest to, aby dzieci dzieliły pokój tylko z kimś tej samej płci. Masz w bazie danych pole M/F dopuszczające wartość null — dopuszczające wartość null, ponieważ plik danych jest niekompletny (nadal poszukujesz niektórych danych). Twój kod dopasowujący salę zdecydowanie nie powinien odpowiadać uczniom, dla których t1.Płeć<=>t2 .Płeć, ponieważ może to skończyć się dopasowaniem dwójki dzieci nieznanej płci, które mogą być przeciwnej płci. Zamiast tego dopasowujesz, gdzie są równe, a nie oba są zerowe.
To tylko jeden przykład. Przyznaję, że zachowanie NULL
i =
operator spowodował wiele zamieszania na przestrzeni lat, ale ostatecznie wina leży prawdopodobnie w mnóstwie samouczków online MySQL, które nie wspominają o tym, jak NULL
współdziała z operatorami, ani o istnieniu <=>
operatora.