Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: proste ale nietypowe pytanie z mysql
Forum PHP.pl > Forum > Bazy danych > MySQL
symer
witam. Otóż mam taką tabele w bazie danych:

Tabela Klienci:

Id Name ReferredBy
1 John Doe NULL
2 Jane Smith NULL
3 Anne Jenkins 2
4 Eric Branford NULL
5 Pat Richards 1
6 Alice Barnes 2

i wybieram polecenie :
  1. SELECT Name FROM Klienci WHERE ReferredBy <> 2;

wyrzuca mi wynik:
name :
Pat Richards

Pytanie brzmi. Dlaczego nie wybiera także rekordów o wartości NULL z ReferredBy , skoro ReferredBy o wartości NULL nie jest równe 2 . Jak w zapytaniu. Prosze o pomoc
trueblue
NULL to wartość niezdefiniowana, a właściwie brak wartości, czyli nie jest możliwe jej porównanie. W przypadku tego warunku dla takich pól otrzymasz NULL, a nie true lub false.
Rozwiązaniem jest użycie w warunku IF lub COALESCE lub dodanie do niego OR ReferredBy IS NULL.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.