← Все вопросы

Как в WHERE объединить два условия через AND и OR?

Задан 15 месяцев назад613 просмотров2 ответа
6

Я умею делать одно условие: WHERE age > 14. А как наложить сразу два? Например, чтобы возраст был больше 14 И город Москва. Или чтобы город был Москва ИЛИ Казань. Как это пишется в SQL?

2 ответа

10
✓ Принятый ответ — помог автору

Для нескольких условий в WHERE есть AND (и) и OR (или).

AND — должны выполняться ОБА условия:

SELECT * FROM students
WHERE age > 14 AND city = 'Москва';

(старше 14 И из Москвы)

OR — достаточно ХОТЯ БЫ ОДНОГО:

SELECT * FROM students
WHERE city = 'Москва' OR city = 'Казань';

(из Москвы или из Казани)

Когда смешиваешь AND и OR, ставь скобки, чтобы не запутаться в порядке:

SELECT * FROM students
WHERE age > 14 AND (city = 'Москва' OR city = 'Казань');

Здесь: возраст > 14 И при этом город — Москва или Казань. Без скобок AND «считается раньше» OR, и смысл может получиться не тот, что ты хотел.

4

Кстати, твой второй пример (city = 'Москва' OR city = 'Казань') можно записать короче через IN:

WHERE city IN ('Москва', 'Казань')

Это читается «город входит в список». Удобно, когда вариантов много.

Ваш ответ

Войдите, чтобы ответить на вопрос.