Ce face Operatori de comparație
Operatorii de comparație se folosesc mai ales în WHERE. <> și != înseamnă „diferit”. Comparațiile de text urmează colația: implicit nu contează majusculele și diacriticele.
Orice comparație cu NULL dă NULL, chiar și NULL = NULL. Excepția este <=> („egal sigur la NULL”), care tratează NULL ca pe o valoare obișnuită.
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Valorile comparate. |
Ce returnează
1, 0 sau NULL (<=> nu dă niciodată NULL).
Exemple
Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.
CREATE TABLE produse (
id INT PRIMARY KEY,
nume VARCHAR(30),
pret DECIMAL(10,2),
stoc INT,
reducere INT
);
INSERT INTO produse VALUES
(1, 'Laptop', 3499.90, 4, NULL),
(2, 'Mouse', 79.50, 25, 10),
(3, 'Birou', 899.00, 0, 15),
(4, 'Scaun', 649.99, 7, NULL),
(5, 'Monitor', 1199.00, 3, 5);
Exemplul 1: Rezultatele comparațiilor
SELECT 3 > 2 AS mai_mare, 2 <> 3 AS diferit, 'ana' = 'ANA' AS text,
NULL = NULL AS nul_egal, NULL <=> NULL AS nul_sigur;
Rezultat
+----------+---------+------+----------+-----------+
| mai_mare | diferit | text | nul_egal | nul_sigur |
+----------+---------+------+----------+-----------+
| 1 | 1 | 1 | NULL | 1 |
+----------+---------+------+----------+-----------+
Exemplul 2: Produse diferite de o reducere anume, inclusiv cele fără reducere
SELECT nume, reducere
FROM produse
WHERE NOT (reducere <=> 10)
ORDER BY id;
Rezultat
+---------+----------+
| nume | reducere |
+---------+----------+
| Laptop | NULL |
| Birou | 15 |
| Scaun | NULL |
| Monitor | 5 |
+---------+----------+
Greșeli frecvente
- Scrii
WHERE reducere = NULL. Nu găsește nimic; foloseșteIS NULL. - Folosești
WHERE reducere != 10și pierzi rândurile cuNULL. Comparația cuNULLnu este nici adevărată, nici falsă.
Comenzi înrudite
IS NULL: Găsește rândurile în care o coloană nu are valoare (NULL) sau, cu IS NOT NULL, în care are.IS și IS NOT (TRUE, FALSE, UNKNOWN): Testează o valoare față de TRUE, FALSE sau UNKNOWN (NULL); nu returnează niciodată NULL.BETWEEN: Verifică dacă o valoare este într-un interval, cu tot cu capete.