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

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

 

 



 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *