MySQL Предложение WHERE: AND, OR, IN, NOT IN Пример запроса

Что такое пункт WHERE в MySQL?

Предложение WHERE in MySQL — это ключевое слово, используемое для указания точных критериев данных или строк, на которые будет влиять указанный оператор SQL. Предложение WHERE можно использовать с такими операторами SQL, как INSERT, UPDATE, SELECT и DELETE, для фильтрации записей и выполнения различных действий. operaданные.

Мы рассмотрели, как запросить данные из база данных используя оператор SELECT из предыдущего руководства. Инструкция SELECT вернула все результаты из запрошенной таблицы базы данных.

Однако это те случаи, когда мы хотим ограничить результаты запроса указанным условием. Предложение WHERE в SQL пригодится в таких ситуациях.

Предложение WHERE в MySQL
Предложение WHERE в MySQL

Синтаксис предложения WHERE

Основной синтаксис предложения WHERE при использовании в MySQL Инструкция SELECT WHERE выглядит следующим образом.

SELECT * FROM tableName WHERE condition;

ВОТ

  • «ВЫБРАТЬ * ИЗ имени таблицы» это стандарт Оператор SELECT
  • "ГДЕ" это ключевое слово, которое ограничивает наш набор результатов запроса выбора и "состояние" — фильтр, который будет применен к результатам. Фильтром может быть диапазон, одно значение или подзапрос.

Давайте теперь посмотрим на практический пример.

Предположим, мы хотим получить личные данные участника.tails из таблицы участников, учитывая номер членства 1, мы будем использовать следующийwing сценарий для достижения этой цели.

SELECT * FROM `members` WHERE `membership_number` = 1;

Выполнение приведенного выше сценария в MySQL верстак на «myflixdb» выдаст следующееwing результаты.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm

Предложение WHERE в сочетании с – И ЛОГИЧЕСКИЕ Operaтор

Условие WHERE в MySQL при использовании вместе с логическим оператором AND operator выполняется только в том случае, если выполняются ВСЕ указанные критерии фильтра.

Давайте теперь рассмотрим практический пример. Предположим, мы хотим получить список всех фильмов категории 2, выпущенных в 2008 году. Для этого мы будем использовать сценарий, показанный ниже.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
Выполнение приведенного выше сценария в MySQL рабочая среда против «myflixdb» выдает следующееwing результаты.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

Предложение WHERE в сочетании с – OR ЛОГИЧЕСКИЕ Operaтор

Предложение WHERE при использовании вместе с OR operator выполняется только в том случае, если соблюдены какие-либо или все указанные критерии фильтра.
Фоллоwing сценарий получает все фильмы либо в категории 1, либо в категории 2.
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
Выполнение приведенного выше сценария в MySQL рабочая среда против «myflixdb» выдает следующееwing результаты.
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2

Предложение WHERE в сочетании с – IN Ключевое слово

ГДЕ в MySQL Предложение, при использовании вместе с ключевым словом IN, влияет только на строки, значения которых соответствуют списку значений, указанному в ключевом слове IN. MySQL Оператор IN помогает сократить количество предложений OR, которые вам, возможно, придется использовать.
Фоллоwing MySQL Запрос WHERE IN дает строки, где номер членства равен 1, 2 или 3.
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);

Выполнение приведенного выше сценария в MySQL рабочая среда против «myflixdb» выдает следующееwing результаты.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com

Предложение WHERE в сочетании с – НЕ В Ключевое слово

Предложение WHERE при использовании вместе с ключевым словом NOT IN НЕ влияет на строки, значения которых соответствуют списку значений, указанному в ключевом слове NOT IN.
Фоллоwing запрос дает строки, где номер членства НЕ равен 1, 2 или 3
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);

Выполнение приведенного выше сценария в MySQL рабочая среда против «myflixdb» выдает следующееwing результаты.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

Предложение WHERE в сочетании с – СРАВНЕНИЕ OperaTORs

Сравнение меньше (), равно (=), не равно () operators можно использовать с предложением WHERE

= Равно

Фоллоwing скрипт получает всех женщин-членов из таблицы участников, используя сравнение "равно" operaтор.
SELECT * FROM `members` WHERE `gender` = 'Female';

Выполнение приведенного выше сценария в MySQL рабочая среда против «myflixdb» выдает следующееwing результаты.

membership_number full_names gender date_of_birth physical_address postal_address contct_number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL

> Больше

Фоллоwing скрипт получает все платежи, превышающие 2,000, из таблицы платежей.
ВЫБЕРИТЕ * ИЗ `платежей` ГДЕ `amount_paid` > 2000;
Выполнение приведенного выше сценария в MySQL рабочая среда против «myflixdb» выдает следующееwing результаты.
payment_id membership_number payment_date description amount_paid external_reference_number
1 1 23-07-2012 Movie rental payment 2500 11
3 3 30-07-2012 Movie rental payment 6000 NULL

< > Не равно

Фоллоwing скрипт получает все фильмы, идентификатор категории которых не равен 1.
SELECT * FROM `movies` WHERE `category_id`<> 1;
Выполнение приведенного выше сценария в MySQL рабочая среда против «myflixdb» выдает следующееwing результаты.
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8

Итого

  • Предложение SQL WHERE используется для ограничения количества строк, на которые влияют операторы SELECT, UPDATE или УДАЛИТЬ запрос.
  • Условие WHERE в SQL можно использовать вместе с логическим operaтакие операторы, как И и ИЛИ, сравнение operaТоры, такие как ,= и т. д.
  • При использовании с AND логический operaтор, все критерии должны быть соблюдены.
  • При использовании с логическим ИЛИ operaто любой из критериев должен быть соблюден.
  • Ключевое слово IN используется для выбора строк, соответствующих списку значений.

Логические

Предположим, мы хотим получить список взятых напрокат фильмов, которые не были возвращены в срок 25. Мы можем использовать предложение оператора SQL WHERE вместе со сравнением «меньше чем». operaТор и логическое И operaчтобы добиться этого.
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;

Выполнение приведенного выше сценария в MySQL верстак дает фоллоwing результаты.

reference_number transaction_date return_date membership_number movie_id movie_returned
14 21-06-2012 24-06-2012 2 2 0