Ce face Operatori logici: AND, OR, NOT, XOR
AND e adevărat dacă ambele condiții sunt adevărate, OR dacă măcar una este, XOR dacă exact una este, iar NOT inversează. MySQL lucrează cu logică pe trei valori: o condiție poate fi și NULL (necunoscută).
Variantele &&, || și ! sunt depreciate: afișează avertisment și vor fi eliminate. Folosește cuvintele AND, OR, NOT.
Parametri
| Parametru | Descriere |
|---|---|
a, b |
Condițiile combinate. |
Ce returnează
1, 0 sau 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: Logica pe trei valori
SELECT TRUE AND NULL AS si_cu_null,
FALSE AND NULL AS fals_si_null,
TRUE OR NULL AS sau_cu_null,
NOT NULL AS nu_null,
1 XOR 0 AS sau_exclusiv;
Rezultat
+------------+--------------+-------------+---------+--------------+
| si_cu_null | fals_si_null | sau_cu_null | nu_null | sau_exclusiv |
+------------+--------------+-------------+---------+--------------+
| NULL | 0 | 1 | NULL | 1 |
+------------+--------------+-------------+---------+--------------+
Exemplul 2: Condiții combinate, cu paranteze
SELECT nume, pret, stoc
FROM produse
WHERE stoc > 0 AND (pret < 100 OR reducere IS NOT NULL)
ORDER BY id;
Rezultat
+---------+---------+------+
| nume | pret | stoc |
+---------+---------+------+
| Mouse | 79.50 | 25 |
| Monitor | 1199.00 | 3 |
+---------+---------+------+
Exemplul 3: Operatorii vechi afișează avertisment
SELECT 1 && 1 AS si_vechi, !0 AS nu_vechi;
Rezultat
+----------+----------+
| si_vechi | nu_vechi |
+----------+----------+
| 1 | 1 |
+----------+----------+
Warning (Code 1287): '&&' is deprecated and will be removed in a future release. Please use AND instead
Warning (Code 1287): '!' is deprecated and will be removed in a future release. Please use NOT instead
Greșeli frecvente
- Uiți parantezele:
ANDare prioritate față deOR.a OR b AND cînseamnăa OR (b AND c). - Scrii
'a' || 'b'ca să lipești texte. În MySQL,||este SAU logic (dacă nu e activ modulPIPES_AS_CONCAT); foloseșteCONCAT().
Comenzi înrudite
Operatori de comparație: Compară două valori și returnează 1 (adevărat), 0 (fals) sau NULL.WHERE: Filtrează rândurile: păstrează doar rândurile care îndeplinesc o condiție.IF(): Alege între două valori după o condiție, ca un operator ternar.