В таблице users нужно выбрать только активных пользователей из России или Казахстана. Какой WHERE соответствует требованию?
A
WHERE is_active = 1 AND country = 'RU' OR country = 'KZ'B
WHERE is_active = 1 OR (country = 'RU' OR country = 'KZ')C
WHERE is_active = 1 AND (country = 'RU' OR country = 'KZ')D
WHERE is_active = 1 AND country = 'RU' AND country = 'KZ'Правильный ответ. При смешивании
AND и OR важно использовать скобки, чтобы зафиксировать нужную логику фильтрации.Разбор
Запрос должен отобрать строки, где одновременно выполняются два условия: пользователь активен и страна входит в набор из двух значений. Поэтому правильно писать is_active = 1 AND (country = 'RU' OR country = 'KZ'). Без скобок выражение с AND и OR может трактоваться не так, как вы ожидаете, и начнёт пропускать, например, всех пользователей из 'KZ' независимо от активности.
Проверь себя · 1/3разбор после ответа
Вы делаете пагинацию так:
SELECT product_id FROM products LIMIT 20 OFFSET 20. В чём главный риск такого подхода для аналитической витрины или интерфейса, если нет ORDER BY?Ещё вопросы по теме «Основы SQL-запросов»
- Для отчёта по регистрациям нужны только идентификатор пользователя `user_id` и дата `signup_at` из таблицы пользователей. Какой запрос лучше соответствует задаче и не тянет лишние поля?
- Нужно получить 20 самых новых событий из таблицы `events` (по времени `event_time`) и показать их в выдаче сверху. Какой запрос верный?
- Вы строите выдачу «последние заказы» и используете `LIMIT 50`. Поле `created_at` не уникально (много заказов в одну секунду). Какой `ORDER BY` лучше, чтобы порядок был детерминированным?
- Что можно корректно утверждать про результат запроса `SELECT user_id FROM users LIMIT 10`, если в нём нет `ORDER BY`?
- Нужно показать третью страницу каталога товаров: по 20 товаров на страницу, сортировка по цене по возрастанию. Какой запрос корректный?
- Все вопросы по «Основы SQL-запросов» →