Коварная война россии против Украины. Ориентировочные потери врага
(по состоянию на 18.04.2024)
456960
солдат
347
самолетов
325
вертолетов
7196
танков
13835
ББМ
11637
артиллерия
760
ПВО
1046
РСЗО
15618
машин
26
корабли и катера
Ознакомление с операторами AND и OR в MySQL
Опубликовано Обновлено: 06.12.2019

Ознакомление с операторами 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 не будет опубликован. Обязательные поля помечены *