Ознакомление с операторами AND и OR в MySQL

Из сегодняшней практической статьи вы узнаете, как с помощью операторов AND и OR в MySQL объединять несколько логических выражений для фильтрации результатов в базе данных.

 

 

Оператор AND в MySQL

Оператор AND (И) – это логический оператор, который объединяет два или более логических выражения и возвращает true (истина), только если оба выражения имеют значение true. Оператор AND возвращает false (ложь), если одно из двух выражений оценивается как false.

 

Ниже представлен синтаксис оператора AND:

логическое_выражение_1 AND логическое_выражение_2

 

Логическое выражение – это булево выражение, т.е., выражение, результатом которого есть либо ИСТИНА (true), либо ЛОЖЬ (false), либо NULL.

 

В следующей таблице показаны результаты оператора AND при различных комбинациях с true, false и null.

TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL

 

 

Оператор AND часто используется в условии WHERE операторов SELECT, UPDATE, DELETE для формирования более детального условия. Оператор AND также используется в условиях присоединения выражений INNER JOIN и LEFT JOIN.

 

При оценке выражения с оператором AND, MySQL останавливает оценку оставшихся частей выражения всякий раз, когда он может определить результат. Эта функция называется оценкой короткого замыкания.

 

Рассмотрим следующий пример.

SELECT 1 = 0 AND 1 / 0;

 

Обратите внимание, что в MySQL ноль считается ложным (false), а ненулевое значение считается истиной (true).

В результате оценки короткого замыкания, MySQL будет оценивать только первую часть выражения (1 = 0). Поскольку выражение 1 = 0 возвращает false, MySQL может завершить оценку всего выражения, результатом которого будет false. MySQL не будет оценивать оставшуюся часть выражения (1 / 0). Если же это было бы не так, тогда вы получите ошибку, поскольку нельзя делить на ноль.

 

 

Пример использования оператора AND в MySQL

В следующем запросе оператор AND используется для поиска автомобилей, которые выпускаются и в Германии, и в США:

SELECT
  cars,
  country
FROM
  cars
WHERE
  country = 'Germany' AND country = 'USA';

 

 

Используя оператор AND, вы можете комбинировать и более двух логических выражений.

 

 

Оператор OR в MySQL

Оператор OR (ИЛИ) в MySQL объединяет два логических выражения и возвращает true, когда любое из этих условий выполняется.

 

Ниже показан синтаксис оператора OR:

логическое_выражение_1 OR логическое_выражение_2

 

И логическое_выражение_1, и логическое_выражение_2 являются булевым типом выражения, которое возвращает true, false или NULL.

 

В следующей таблице показаны результаты оператора OR при различных комбинациях с true, false и null.

TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

 

 

 

Оценка короткого замыкания оператора OR в MySQL

MySQL использует оценку короткого замыкания также и для оператора OR (ИЛИ). Другими словами, MySQL перестает оценивать оставшиеся части оператора, когда он может определить результат.

 

Давайте рассмотрим следующий пример запроса:

SELECT 1 = 1 OR 1 / 0;

 

Поскольку выражение 1 = 1 всегда возвращает true, MySQL не будет оценивать выражение 1 / 0. Если же это произойдет, он выдаст ошибку из-за ошибки деления на ноль.

 

 

Приоритет оператора OR в MySQL

Когда вы используете более одного логического оператора в выражении, MySQL всегда оценивает операторы OR после операторов AND. Это называется приоритет оператора, который определяет порядок оценки операторов. MySQL сначала оценивает оператор с более высоким приоритетом.

 

Давайте рассмотрим следующий пример:

SELECT true OR false AND false;

 

Как это работает:

  • Во-первых, MySQL оценивает оператор AND, поэтому выражение false AND false возвращает false.
  • Во-вторых, MySQL вычисляет оператор OR, поэтому выражение true OR false возвращает true.

 

Чтобы изменить порядок оценки, используйте круглые скобки, например так:

SELECT (true OR false) AND false;

 

Как это работает:

  • Во-первых, MySQL оценивает выражение в скобках (true OR false) и возвращает true
  • Во-вторых, MySQL оценивает оставшуюся часть оператора, true AND false и возвращает false.

 

 

Примеры использования оператора OR в MySQL

В следующем запросе оператор OR используется для поиска автомобилей, которые выпускаются или в Германии, или в США:

SELECT
  cars,
  country
FROM
  cars
WHERE country = 'Germany' OR
  country = 'USA';

 

 

В результате этого запроса вы получите значения базы данных по автомобилях, которые выпускаются либо в Германии, либо в США.

 

 

В результате следующего запроса вы получите значения базы данных по автомобилях, которые выпускаются либо в Германии, либо в США, а также имеют цену более 20 тыс. долларов.

SELECT
  cars,
  country,
  carPrice
FROM
  cars
WHERE(country = 'Germany'
  OR country = 'USA')
  AND carPrice > 20000;

 

 

 

Из сегодняшней практической статьи вы узнали, как использовать операторы AND и OR в MySQL, чтобы объединять несколько логических выражений для фильтрации результатов в базе данных.

 

Recent Posts

Обзор WordPress 7.0 «Armstrong»: Новая эра ИИ и масштабная перестройка Core-архитектуры

20 мая 2026 года официально состоялся релиз долгожданной мажорной версии WordPress 7.0 «Armstrong», названной в…

1 неделя ago

History Hijacking: Почему Google наказывает за «сломанную» кнопку Назад и как защитить сайт с помощью CSP

Каждый владелец сайта и SEO-специалист ведет ежедневную упорную борьбу за удержание пользователя на страницах вебресурса.…

1 неделя ago

Интернет-магазин без лишнего функционала: как не переплатить за разработку на старте

Многие предприниматели сталкиваются с одной и той же проблемой. После утверждения бюджета разработка затягивается, появляются…

1 неделя ago

Как выбрать детские бутсы для футбольной секции и не ошибиться с типом подошвы

Футбольная секция быстро показывает, насколько обувь подходит ребенку. Если пара скользит, давит или плохо цепляется…

2 недели ago

Флагманский смартфон: почему стоит купить Samsung Galaxy S26 Ultra

Компания Samsung — один из лидеров на рынке электроники. Ее смартфоны выделяются надежностью, качественными дисплеями,…

2 недели ago

Глагол dar в испанском языке: значение, спряжение и особенности использования

Испанский язык привлекает миллионы людей своей мелодичностью, эмоциональностью и относительной простотой изучения. Одним из важнейших…

2 недели ago