И двете биха били валидни, но от AND
има по-висок приоритет от OR
, те биха означавали различни неща:
- Първата ви заявка в скоби ще избере изтрити редове с типове 3, 4, 5
- Втората ви заявка в скоби ще избере всички редове с типове 3, 5, в допълнение към изтритите редове от тип 4; това е същото значение като в оригиналната заявка без скоби.
Можете да избегнете объркването като използвате оператор IN
, като това:
SELECT * FROM `table` WHERE type IN (3, 4, 5) AND table.deleted = 1;
или ако искате второто значение
SELECT * FROM `table` WHERE type IN (3, 5) OR (type = 4 AND table.deleted = 1)