IN и BETWEEN в SQL: оптимизация условий WHERE

WHERE - МНОЖЕСТВЕННОЕ СРАВНЕНИЕ IN И BETWEEN

Когда в условии оператор OR и нам нужно, чтобы выполнялось одно из условий в рамках одной колонки (в нашем случае это club), то уместнее использовать оператор IN (список условий через запятую):

select
    long_name,
    age,
    team_position,
    club
from
    fifa_players_2018
where
    club in ('Manchester United', 'Liverpool')
limit 5

Если мы хотим использовать аналог IN для чисел или дат, можно использовать оператор BETWEEN.

Рассмотрим пример

Давайте теперь выведем 10 игроков (имя игрока - long_name, возраст - age, позиция - team_position, команда - club), которые играют в футбольном клубе “Manchester United” и которым от 19 до 25 лет:

select
    long_name,
    age,
    team_position,
    club
from
    fifa_players_2018
where
    club = 'Manchester United'
    and age between 19 and 25
limit 10

Еще вместо BETWEEN мы можем прописать простое неравенство, и такое написание в определенных случаях может быть более предпочтительнее для большей гибкости, например, при неявном включении дополнительных условий.

age >= 19 and age <= 25

Резюмируем:

  • AND – и (пересечение условий);
  • OR – или (выполнение одного из условий).

А для удобного сокращения OR принято использовать:

  • IN - позволяет легко проверить, соответствует ли выражение какому-либо значению в списке значений;
  • BETWEEN - позволяет легко проверить, находится ли выражение в диапазоне значений (включительно).