В тази тема ще научим как да добавяме множество условия с помощта на клаузата WHERE.
Първо, нека разберем концепцията на клаузата WHERE.
Клаузата WHERE се използва за определяне на условие, докато се извличат записи от таблица.
Клаузата WHERE обикновено се използва с израза SELECT в SQL
Заявката SELECT ще покаже само записите, отговарящи на условието, посочено в клаузата WHERE
Може да има едно или повече от едно условие, посочено в условието на клаузата WHERE на заявка SELECT.
Операторите AND и OR се използват за проверка на множество условия с помощта на клаузата WHERE в една заявка.
- оператор И с клауза WHERE
Всеки път, когато операторът AND се използва между условията с клауза WHERE за проверка на множество условия в заявка SELECT, резултатите се показват, когато е изпълнено само повече от едно условие, дадено в заявката.
Синтаксис:
SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];
Пример 1:
Помислете за таблицата на учениците, дадена по-долу. Ще разгледаме една и съща таблица за всички следващи примери.
Student_RollNo | Име_ученик | Пол_ученик | Mobile_Number_student | Студентски_домашен град | Студентска_възраст | Процент_Студент |
1 | Rohit More | Мъж | 9890786123 | Lucknow | 23 | 75 |
2 | Кунал Шах | Мъж | 7789056784 | Чандигарх | 20 | 68 |
3 | Картик Гоенка | Мъж | 9908743576 | Ахемдабад | 22 | 92 |
4 | Анупама Шах | Женски | 8890907656 | Чандигарх | 24 | 94 |
5 | Снехал Джайн | Женски | 8657983476 | Сура | 21 | 94 |
Сега нека видим няколко примера, за да разберем тази концепция на практика.
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";
Изход:
Има само един запис в таблицата на учениците с списък номер 2, който има пол като мъжки и роден град като Чандигарх. Дори ако някое от посочените условия не е изпълнено, тогава в този случай изходът няма да бъде същият. Показаните записи/записите ще бъдат различни или в някои случаи изходът може да е празен набор, ако нито един запис не отговаря на двете условия.
Пример 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;
Изход:
В таблицата на учениците има само един запис с номер на списък „5“, който има възраст, равна на „21“ и процент, равен на „94“.
Пример 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Изход:
Сред всички записи в таблицата на учениците има само един запис с рол номер „4“, който има пол като „мъжки“, родния град като „Чандигарх“, а възрастта е равна на „24“. Това е единственият запис, който отговаря на трите условия.
Пример 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_Name = "Kartik Goenka" AND Student_Percentage = 92;
Изход:
Сред всички записи в таблицата на учениците има само един запис с рол номер „3“, в който са изпълнени и трите условия, т.е. пол като мъж, името е равно на „Kartik Goenka“ и процентът е равен на „92“.
- Оператор OR с клауза WHERE
Всеки път, когато операторът OR се използва между условията с клауза WHERE за проверка на множество условия в заявка SELECT, резултатите се показват, когато е изпълнено поне едно условие сред всички останали условия, написани в заявка.
Синтаксис:
SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];
Пример 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";
Изход:
В таблицата на учениците има четири записа с рол номер 1, 2, 3 и 4, който има пол като мъж или роден град като Чандигарх. Дори ако са изпълнени определени условия, този запис ще се счита за част от изхода. В някои случаи изходът може да бъде празен набор, ако нито един запис не удовлетворява нито едно от условията.
Пример 2:
mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;
Изход:
В таблицата на учениците има две ролкови номера на записите „4“ и „5“, в които възрастта е равна на „21“, или процентът е равен на „94“.
Пример 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Изход:
Сред всички записи в таблицата на учениците има три записа с номер на ролката „2“, „4“ и „5“, който има всеки пол като „женски“; родния град като „Чандигарх“ или възрастта е равна на „24“. Това са записите, които отговарят на едно от трите условия.
Пример 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_Name = "Kartik Goenka" OR Student_Percentage = 92;
Изход:
Сред всички записи в таблицата на учениците има три записа с номера на ролките „1“, „2“ и „3“, в които е изпълнено някое от трите условия, т.е. пол като мъж, името е равно на „Kartik Goenka“ или процент е равен на '92'.
- оператор И и ИЛИ с клауза WHERE в една заявка
В заявка за клауза WHERE с израз SELECT можем също да използваме комбинация от оператори AND и OR в една заявка. Целта на използването на комбинациите от оператори И и ИЛИ в една заявка е да се тества по-високото ниво на сложни условия.
Синтаксис:
SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];
Пример 1:
mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;
Изход:
Според условията в заявка записът трябва да има пол като „жена“ и роден град като „Чандигарх“. Възрастта на ученика може или не може да бъде „24“. И така, има само един запис с рол номер „4“, който отговаря на тези условия. Дори ако някой запис има пол като „женски“ и роден град, различен от „Чандигарх“ или обратно, тогава този запис няма да се счита за изход.
Пример 2:
SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;
Изход:
Според условията в заявка записът трябва да има или пол като „жена“, или роден град като „Чандигарх“. Възрастта на ученика не трябва да е различна от „24“. И така, има два записа с рол номер „4“ и „5“, които отговарят на тези условия.
Пример 3:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;
Изход:
В таблицата на учениците има само един запис с пол като „мъжки“, родният град като „Лъкнау“ и процентът на ученика трябва да бъде „75“. Възрастта на ученик може да бъде 23 или различна от 23.
Пример 4:
mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;
Изход:
В таблицата на учениците има три записа, които имат пол като „мъж“ и възраст като „23“. Родният град може или не може да бъде „Lucknow“. Освен това процентът може да бъде или да не е '75'.