Ознакомление с операторами 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, чтобы объединять несколько логических выражений для фильтрации результатов в базе данных.

Tags: mysql

Recent Posts

Как выучить немецкий язык легко и весело? С помощью Beste Freunde!

Немецкий часто считается сложным языком. Да, немецкая лексика имеет «тяжелый» характер. Да, есть действительно очень… Read More

27/09/2020

Отопление и горячая вода – когда нужно, а не когда соизволят включить

Тепло в доме и горячая вода в любое время для многих жителей многоквартирных и частных… Read More

19/09/2020

Инструкция по скачиванию видео с сервиса TikTok (бесплатно и без watermark)

Если вы еще не слышали о TikTok, тогда рекомендуем вам сначала ознакомиться с этим кратким… Read More

17/09/2020

Что есть в бюджетном ноутбуке – на какие характеристики рассчитывать?

Прошли те времена, когда приличный ноутбук стоил от 1000 долларов. Сегодня можно купить довольно неплохой… Read More

16/09/2020

Что лучше – цифровое телевидение Т2 или интернет-телевидение?

Современную жизнь невозможно представить без телевидения. Оно позволяет узнавать о событиях в Украине и мире,… Read More

02/09/2020

Гипоаллергенная подушка. Для чего она важна?

Сейчас найдется мало людей, у которых нет аллергии на продукты или пыльцу растений. Считается, что… Read More

28/08/2020