Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Gdzie klauzula do filtrowania wierszy w MySQL

Ten samouczek jest częścią serii Naucz się podstawowych zapytań SQL przy użyciu MySQL. W poprzednim samouczku omówiliśmy zapytania SQL służące do pobierania wierszy lub odczytywania danych z tabeli w MySQL. Polecenie WYBIERZ zwraca wszystkie wiersze w tabeli, chyba że określimy limit, jak pokazano w poprzednich przykładach samouczka. W kilku sytuacjach musimy przefiltrować wynikowe wiersze, aby uzyskać ograniczone wiersze spełniające określone warunki. Możemy filtrować wiersze za pomocą klauzuli WHERE, określając warunek filtrowania. Możemy również określić wiele warunków za pomocą słów kluczowych ORAZ, LUB.

Gdzie Klauzula

GDZIE Klauzula może służyć do odczytywania przefiltrowanych wierszy z tabeli na podstawie podanych warunków. Jeśli jesteś zdalnie zalogowany do bazy danych, będziesz potrzebować również uprawnienia SELECT do tabeli, aby odczytać wiersze z tabeli.

# SELECT - Syntax - WHERE
SELECT column_1,column_2,... FROM table_name WHERE <single or multiple conditions>;

Objaśnienie zapytania

Polecenie MySQL WYBIERZ może służyć do odczytywania wierszy lub danych z podanej nazwy tabeli, gdzie wyrażenie select i nazwa tabeli są obowiązkowe.

Możemy filtrować wynikowy zestaw zapytań zwrócony przez zapytanie wybierające za pomocą klauzuli WHERE. Możemy określić jeden lub wiele warunków do filtrowania wyników. Słowa kluczowe ORAZ i LUB może służyć do zastosowania wielu warunków. Możemy również użyć słów kluczowych IN i NIE W aby ograniczyć wartości kolumn do zestawu wartości.

Operatorzy

Możemy użyć wymienionych poniżej operatorów do przeprowadzenia porównań podczas stosowania warunków filtrowania. Porównanie zostanie wykonane przy użyciu podanej wartości i wartości przechowywanych w kolumnie tabeli.

= Może być użyty do sprawdzenia, czy wartości dwóch operandów są równe, czy nie.


!= Sprawdza, czy wartości dwóch operandów nie są równe.


Sprawdza, czy wartość lewego operandu jest większa niż wartość prawego operandu.


< Sprawdza, czy wartość lewego operandu jest mniejsza niż wartość prawego operandu.


>= Sprawdza, czy wartość lewego operandu jest większa lub równa wartości prawego operandu.


<= Sprawdza, czy wartość lewego operandu jest mniejsza lub równa wartości prawego operandu.

Przykłady

Ta sekcja zawiera przykłady odczytywania przefiltrowanych danych z tabeli za pomocą SELECT polecenie z GDZIE klauzula. Użyj poniższego zapytania, aby utworzyć tabelę użytkowników zawierającą kolumny id, imię i nazwisko do przechowywania danych użytkownika.

# Create the User Table
CREATE TABLE `user` (
`user_id` bigint(20) NOT NULL,
`first_name` varchar(45),
`last_name` varchar(45)
);

Poniższe zapytanie może zostać użyte do wstawienia danych do tabeli użytkowników.

# Insert Rows - All Columns
INSERT INTO `user` ( `user_id`, `first_name`, `last_name`) VALUES
( 1, 'John', 'Smith' ),
( 2, 'Rick', 'Jones' ),
( 3, 'Catherine', 'Ponting' ),
( 4, 'Harsh', 'Upadhyay' ),
( 5, 'Tajwinder', 'Singh' ),
( 6, 'Leo', NULL ),
( 7, 'Leo', 'Murphy' ),
( 8, 'Ram', 'Choudhary' ),
( 9, 'Nicole', NULL ),
( 10, 'Ram', 'Choudhary' );

Wspomniane powyżej zapytanie wstawi do tabeli 10 wierszy z identyfikatorem, imieniem i nazwiskiem reprezentujących 10 różnych użytkowników.

Teraz odczytamy przefiltrowane dane wstawione przez nas do tabeli użytkowników. Można to zrobić za pomocą polecenia WYBIERZ, jak pokazano poniżej.

# Filter - WHERE - Read all rows having first name set to Leo
SELECT * FROM `user` WHERE `first_name` = 'Leo';

# Result
6 Leo
7 Leo Murphy


# Filter - WHERE - AND - Read all rows having first name set to Leo and last name set to Murphy
SELECT * FROM `user` WHERE `first_name` = 'Leo' AND `last_name` = 'Murphy';

# Result
7 Leo Murphy


# Filter - WHERE - IS NOT - Read all rows having last name without NULL values
SELECT * FROM `user` WHERE `last_name` IS NOT NULL;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay
5 Tajwinder Singh
7 Leo Murphy
8 Ram Choudhary
10 Ram Choudhary


# Filter - WHERE - OR, IN - Read all rows having first name is either John or Harsh
SELECT * FROM `user` WHERE `first_name` = 'John' OR `first_name` = 'Harsh';
SELECT * FROM `user` WHERE `first_name` IN ( 'John', 'Harsh' );

# Result
1 John Smith
4 Harsh Upadhyay

Wyżej wymienione zapytania wykonują różne operacje filtrowania na string wartości przy użyciu jednego lub wielu warunków. Upewnij się, że używasz pojedynczych cudzysłowów podczas stosowania filtrów dla kolumn o typie danych ciągu.

# Filter - WHERE - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5;

# Result
1 John Smith
2 Rick Jones
3 Catherine Ponting
4 Harsh Upadhyay


# Filter - WHERE - LIMIT - Read all rows having id lesser than 5
SELECT * FROM `user` WHERE `user_id` < 5 LIMIT 2;

# Result
1 John Smith
2 Rick Jones


# Filter - WHERE - AND - Read all rows having id greater than 3 and lesser than 6
SELECT * FROM `user` WHERE `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay
5 Tajwinder Singh

Wyżej wymienione zapytania stosują warunki dla numerycznych typów danych. Możemy również mieszać różne typy wartości, jak pokazano poniżej.

# Filter - WHERE - AND - Read all rows having first name set to Harsh, id greater than 2 and lesser than 5
SELECT * FROM `user` WHERE `first_name` = 'Harsh' AND `user_id` > 3 AND `user_id` < 6;

# Result
4 Harsh Upadhyay

W ten sposób możemy odczytać przefiltrowane dane przechowywane w tabelach MySQL za pomocą klauzuli WHERE.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zresetować hasło roota MySQL lub MariaDB w systemie Linux?

  2. Jak mogę użyć operatora przypisania MySQL(:=) w hibernacji natywnej kwerendy?

  3. 2 sposoby na wyświetlenie listy wszystkich funkcji w MySQL

  4. MySQL - Jak sumować czasy?

  5. Używanie SQL LIKE i IN razem