Database
 sql >> Baza danych >  >> RDS >> Database

SQL WHERE Wiele warunków

W tym temacie dowiemy się, jak dodać wiele warunków za pomocą klauzuli WHERE.

Najpierw zrozummy pojęcie klauzuli WHERE.

Klauzula WHERE służy do określenia warunku podczas pobierania rekordów z tabeli.

Klauzula WHERE jest zwykle używana z instrukcją SELECT w SQL

Zapytanie SELECT wyświetli tylko rekordy spełniające warunek określony w klauzuli WHERE

W warunku klauzuli WHERE zapytania SELECT może być określony jeden lub więcej warunków.

Operatory AND i OR są używane do sprawdzania wielu warunków przy użyciu klauzuli WHERE w pojedynczym zapytaniu.

  • Operator AND z klauzulą ​​WHERE

Ilekroć operator AND zostanie użyty pomiędzy warunkami z klauzulą ​​WHERE w celu sprawdzenia wielu warunków w zapytaniu SELECT, wyniki są wyświetlane, gdy spełniony jest tylko więcej niż jeden warunek podany w zapytaniu.

Składnia:

SELECT *FROM table_name WHERE Condition 1 AND Condition 2 [AND Condition 3];

Przykład 1:

Rozważ tabelę uczniów podaną poniżej. Tę samą tabelę rozważymy we wszystkich poniższych przykładach.

Student_RollNo Nazwa_ucznia Płeć_ucznia Student_MobileNumber Student_HomeTown Wiek_ucznia Student_Percentage
1 Rohit Więcej Mężczyzna 9890786123 Szczęśliwy 23 75
2 Kunal Shah Mężczyzna 7789056784 Chandigarh 20 68
3 Kartik Goenka Mężczyzna 9908743576 Ahemdabad 22 92
4 Szach Anupamy Kobieta 8890907656 Chandigarh 24 94
5 Dżin Snehal Kobieta 8657983476 Uwaga 21 94

Zobaczmy teraz kilka przykładów, aby praktycznie zrozumieć tę koncepcję.

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Chandigarh";

Wyjście:

W tabeli uczniów jest tylko jeden rekord z numerem 2, który określa płeć jako męską i miasto rodzinne jak Chandigarh. Nawet jeśli którykolwiek z określonych warunków nie jest spełniony, w takim przypadku dane wyjściowe nie będą takie same. Wyświetlane rekordy/rekordy będą różne, aw niektórych przypadkach dane wyjściowe mogą być pustym zestawem, jeśli żaden rekord nie spełnia obu warunków.

Przykład 2:

mysql> SELECT *FROM students WHERE Student_Age = 21 AND Student_Percentage = 94;

Wyjście:

Jest tylko jeden rekord z numerem rzutu „5” w tabeli uczniów, który ma wiek równy „21” i procent równy „94”.

Przykład 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" AND Student_Age = 24;

Wyjście:

Wśród wszystkich rekordów w tabeli uczniów jest tylko jeden rekord z numerem „4”, w którym płeć to „mężczyzna”, miasto rodzinne to „Chandigarh”, a wiek to „24”. To jedyny rekord, który spełnia wszystkie trzy warunki.

Przykład 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND  Student_Name = "Kartik Goenka" AND Student_Percentage = 92;

Wyjście:

Wśród wszystkich rekordów w tabeli uczniów jest tylko jeden rekord z numerem rzutu „3”, w którym spełnione są wszystkie trzy warunki, tj. płeć jako męska, imię równe „Kartik Goenka” i procent równy „92”.

  • Operator OR z klauzulą ​​WHERE

Ilekroć operator OR zostanie użyty pomiędzy warunkami z klauzulą ​​WHERE, aby sprawdzić wiele warunków w zapytaniu SELECT, wyniki są wyświetlane, gdy spełniony jest co najmniej jeden warunek spośród wszystkich innych warunków zapisanych w zapytaniu.

Składnia:

SELECT *FROM table_name WHERE Condition 1 OR Condition 2 [OR Condition 3];

Przykład 1:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Chandigarh";

Wyjście:

W tabeli uczniów znajdują się cztery rekordy z numerem 1, 2, 3 i 4, które mają płeć jako męską lub miasto rodzinne jako Chandigarh. Nawet jeśli zostaną spełnione określone warunki, ten rekord zostanie uznany za część danych wyjściowych. W niektórych przypadkach wynik może być pustym zestawem, jeśli żaden rekord nie spełnia żadnego z warunków.

Przykład 2:

mysql> SELECT *FROM students WHERE Student_Age = 21 OR Student_Percentage = 94;

Wyjście:

W tabeli uczniów znajdują się dwa rekordy o numerach „4” i „5”, które mają wiek równy „21” lub procent równy „94”.

Przykład 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" OR Student_Age = 24;

Wyjście:

Wśród wszystkich rekordów w tabeli uczniów znajdują się trzy rekordy z numerem rolki „2”, „4” i „5”, które mają płeć jako „kobieta”; rodzinne miasto jako „Chandigarh” lub wiek równy „24”. Są to zapisy, które spełniają jeden z trzech warunków.

Przykład 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR  Student_Name = "Kartik Goenka" OR Student_Percentage = 92;

Wyjście:

Wśród wszystkich rekordów w tabeli uczniów znajdują się trzy rekordy z numerami rzutów „1”, „2” i „3”, w których spełniony jest jeden z trzech warunków, tj. płeć jako mężczyzna, imię równe „Kartik Goenka” lub procent równy „92”.

  • Operator AND i OR z klauzulą ​​WHERE w pojedynczym zapytaniu

W zapytaniu z klauzulą ​​WHERE z instrukcją SELECT możemy również użyć kombinacji operatorów AND i OR w jednym zapytaniu. Celem użycia kombinacji operatorów AND i OR w jednym zapytaniu jest przetestowanie wyższego poziomu skomplikowanych warunków.

Składnia:

SELECT *FROM table_name WHERE Condition 1 AND/OR Condition 2 [AND/OR Condition 3];

Przykład 1:

mysql> SELECT *FROM students WHERE Student_Gender = "Female" AND Student_HomeTown = "Chandigarh" OR Student_Age = 24;

Wyjście:

Zgodnie z warunkami w zapytaniu, rekord powinien mieć płeć jako „kobieta”, a miasto rodzinne jako „Chandigarh”. Wiek ucznia może, ale nie musi, wynosić „24”. Jest więc tylko jeden rekord z numerem rolki „4”, który spełnia te warunki. Nawet jeśli jakikolwiek rekord ma płeć jako „kobieta” i miasto rodzinne inne niż „Chandigarh” lub odwrotnie, to ten rekord nie zostanie uwzględniony w danych wyjściowych.

Przykład 2:

SELECT * FROM students WHERE Student_Gender = "Female" OR Student_HomeTown = "Chandigarh" AND Student_Age = 24;

Wyjście:

Zgodnie z warunkami w zapytaniu rekord powinien zawierać płeć jako „kobieta” lub miasto rodzinne jako „Chandigarh”. Wiek ucznia nie powinien być inny niż „24 lata”. Tak więc istnieją dwa rekordy z numerem rolki „4” i „5”, które spełniają te warunki.

Przykład 3:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" AND Student_HomeTown = "Lucknow" OR Student_Age = 23 AND Student_Percentage = 75;

Wyjście:

W tabeli uczniów jest tylko jeden rekord, w którym płeć to „mężczyzna”, miasto rodzinne to „Lucknow”, a odsetek uczniów powinien wynosić „75”. Wiek ucznia może wynosić 23 lub inny niż 23 lata.

Przykład 4:

mysql> SELECT *FROM students WHERE Student_Gender = "Male" OR Student_HomeTown = "Lucknow" AND Student_Age = 23 OR Student_Percentage = 75;

Wyjście:

W tabeli uczniów znajdują się trzy rekordy, w których płeć to „mężczyzna”, a wiek „23”. Rodzinnym miastem może, ale nie musi być „Lucknow”. Ponadto procent może, ale nie musi, wynosić „75”.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Projektowanie baz danych 101

  2. Model danych dla aplikacji pogodowej

  3. Tworzenie serwera połączonego ODBC bez konfigurowania źródła danych

  4. Migracja projektu Django do Heroku

  5. Dogłębna eksploracja zabezpieczeń na poziomie wiersza