Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Where-Klausel zum Filtern von Zeilen in MySQL

Dieses Tutorial ist Teil der Reihe Learn Basic SQL Queries Using MySQL. Im vorherigen Tutorial haben wir die SQL-Abfragen besprochen, um die Zeilen abzurufen oder Daten aus einer Tabelle in MySQL zu lesen. Der SELECT-Befehl gibt alle Zeilen in einer Tabelle zurück, es sei denn, wir geben das Limit an, wie in den vorherigen Tutorial-Beispielen gezeigt. In einigen Situationen müssen wir die resultierenden Zeilen filtern, um die begrenzten Zeilen zu erhalten, die bestimmte Bedingungen erfüllen. Wir können die Zeilen mit der WHERE-Klausel filtern, indem wir die Filterbedingung angeben. Wir können auch mehrere Bedingungen mit den Schlüsselwörtern AND, OR.

angeben

Where-Klausel

Das WO -Klausel kann verwendet werden, um gefilterte Zeilen aus einer Tabelle basierend auf den angegebenen Bedingungen zu lesen. Falls Sie remote an der Datenbank angemeldet sind, benötigen Sie auch das SELECT-Privileg für die Tabelle, um die Zeilen aus einer Tabelle zu lesen.

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

Erklärung der Abfrage

Der MySQL-Befehl SELECT kann verwendet werden, um Zeilen oder Daten aus dem angegebenen Tabellennamen zu lesen, wobei der Auswahlausdruck und der Name der Tabelle obligatorisch sind.

Wir können den von der Auswahlabfrage zurückgegebenen Ergebnissatz mit der WHERE-Klausel filtern. Wir können entweder einzelne oder mehrere Bedingungen angeben, um die Ergebnisse zu filtern. Die Schlüsselwörter AND und ODER kann verwendet werden, um mehrere Bedingungen anzuwenden. Wir können auch die Schlüsselwörter IN verwenden und NICHT IN um die Spaltenwerte auf eine Reihe von Werten zu beschränken.

Operatoren

Wir können die unten aufgeführten Operatoren verwenden, um Vergleiche durchzuführen, während wir die Filterbedingungen anwenden. Der Vergleich wird mit dem angegebenen Wert und den in der Tabellenspalte gespeicherten Werten durchgeführt.

= Es kann verwendet werden, um zu prüfen, ob die Werte der beiden Operanden gleich sind oder nicht.


!= Es prüft, ob die Werte der beiden Operanden ungleich sind.


> Es prüft, ob der Wert des linken Operanden größer ist als der Wert des rechten Operanden.


< Es prüft, ob der Wert des linken Operanden kleiner ist als der Wert des rechten Operanden.


>= Es prüft, ob der Wert des linken Operanden größer oder gleich dem Wert des rechten Operanden ist.


<= Es prüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist.

Beispiele

Dieser Abschnitt enthält Beispiele zum Lesen gefilterter Daten aus der Tabelle mithilfe von SELECT Befehl mit dem WHERE Klausel. Verwenden Sie die unten aufgeführte Abfrage, um die Benutzertabelle mit den Spalten für ID, Vorname und Nachname zum Speichern von Benutzerdaten zu erstellen.

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

Die unten genannte Abfrage kann verwendet werden, um Daten in die Benutzertabelle einzufügen.

# 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' );

Die oben erwähnte Abfrage fügt 10 Zeilen mit der ID, dem Vornamen und dem Nachnamen in die Tabelle ein, um 10 verschiedene Benutzer darzustellen.

Jetzt werden wir die von uns in die Benutzertabelle eingefügten gefilterten Daten lesen. Dies kann mit dem unten gezeigten SELECT-Befehl erfolgen.

# 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

Die oben erwähnten Abfragen führen verschiedene Filteroperationen auf sstring durch Werte mit einzelnen oder mehreren Bedingungen. Stellen Sie sicher, dass Sie die einfachen Anführungszeichen verwenden, während Sie die Filter für Spalten mit dem Datentyp „String“ anwenden.

# 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

Die oben genannten Abfragen wenden die Bedingungen für numerische Datentypen an. Wir können die verschiedenen Arten von Werten auch mischen, wie unten gezeigt.

# 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

So können wir die in den MySQL-Tabellen gespeicherten gefilterten Daten mit der WHERE-Klausel lesen.