MySQL Речення WHERE: AND, OR, IN, NOT IN Приклад запиту
Що таке речення WHERE в MySQL?
пропозиція WHERE in MySQL це ключове слово, яке використовується для визначення точних критеріїв даних або рядків, на які впливатиме вказаний оператор SQL. Речення WHERE можна використовувати з інструкціями SQL, такими як INSERT, UPDATE, SELECT і DELETE, для фільтрації записів і виконання різноманітних операцій з даними.
Ми розглянули, як запитувати дані з a база даних використовуючи оператор SELECT у попередньому посібнику. Оператор SELECT повернув усі результати із запитуваної таблиці бази даних.
Однак це випадки, коли ми хочемо обмежити результати запиту певною умовою. Речення WHERE в SQL стає в нагоді в таких ситуаціях.

Синтаксис пропозиції WHERE
Базовий синтаксис пропозиції WHERE, коли вона використовується в a MySQL Оператор SELECT WHERE виглядає наступним чином.
SELECT * FROM tableName WHERE condition;
ТУТ
- «SELECT * FROM tableName» є стандартом Оператор SELECT
- «ДЕ» це ключове слово, яке обмежує набір результатів запиту вибірки та "хвороба" це фільтр, який буде застосовано до результатів. Фільтр може бути діапазоном, одним значенням або підзапитом.
Давайте тепер подивимося на a практичний приклад.
Припустімо, що ми хочемо отримати особисті дані учасника з таблиці members з номером членства 1, для цього ми використаємо наступний сценарій.
SELECT * FROM `members` WHERE `membership_number` = 1;
Виконання наведеного вище сценарію в MySQL верстак на “myflixdb” дасть такі результати.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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, виконується, лише якщо виконуються ВСІ вказані критерії фільтра.
SELECT * FROM `movies` WHERE `category_id` = 2 AND `year_released` = 2008;
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
Речення WHERE у поєднанні з – OR ЛОГІЧНИЙ Operaтор
SELECT * FROM `movies` WHERE `category_id` = 1 OR `category_id` = 2;
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 ключове слово
SELECT * FROM `members` WHERE `membership_number` IN (1,2,3);
Виконання наведеного вище сценарію в MySQL workbench проти “myflixdb” дає такі результати.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 у поєднанні з – НЕ В ключове слово
SELECT * FROM `members` WHERE `membership_number` NOT IN (1,2,3);
Виконання наведеного вище сценарію в MySQL workbench проти “myflixdb” дає такі результати.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
4 | Gloria Williams | Female | 14-02-1984 | 2nd Street 23 | NULL | NULL | NULL |
Речення WHERE у поєднанні з – ПОРІВНЯННЯ Operaторс
= Дорівнює
SELECT * FROM `members` WHERE `gender` = 'Female';
Виконання наведеного вище сценарію в MySQL workbench проти “myflixdb” дає такі результати.
membership_number | full_names | gender | date_of_birth | physical_address | postal_address | contct_number | |
---|---|---|---|---|---|---|---|
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 |
> Більш чим
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 |
< > Не дорівнює
SELECT * FROM `movies` WHERE `category_id`<> 1;
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 або запит DELETE.
- Умову WHERE у SQL можна використовувати в поєднанні з логічними операторами, такими як AND та OR, операторами порівняння, такими як ,= тощо.
- При використанні з І логічний оператор, всі критерії мають відповідати.
- При використанні з логічним оператором АБО будь-який із критеріїв має бути виконано.
- Ключове слово IN використовується для вибору рядків, які відповідають списку значень.
Мозок тизер
SELECT * FROM `movierentals` WHERE `return_date` < '2012-06-25' AND movie_returned = 0;
Виконання наведеного вище сценарію в MySQL workbench дає такі результати.
reference_number | transaction_date | return_date | membership_number | movie_id | movie_returned |
---|---|---|---|---|---|
14 | 21-06-2012 | 24-06-2012 | 2 | 2 | 0 |