MySQL WHERE-Klausel
Wir wissen, dass man aus einer MySQL-Tabelle mit derSELECT-Anweisung Daten liest.
Wenn Sie Daten aus einer Tabelle bedingt auswählen müssen, können Sie der SELECT-Anweisung eine WHERE-Klausel hinzufügen.
Die WHERE-Klausel wird in MySQL verwendet, um Abfrageergebnisse zu filtern, wobei nur Zeilen zurückgegeben werden, die bestimmte Bedingungen erfüllen.
Syntax
Das Folgende ist die allgemeine Syntax für die Verwendung der WHERE-Klausel in einer SQL-SELECT-Anweisung, um Daten aus einer Datentabelle zu lesen:
SELECT column1, column2, ... FROM table_name WHERE condition;
Parameter description:
column1,column2, ... sind die Namen der Spalten, die Sie auswählen möchten. Wenn Sie*bedeutet die Auswahl aller Spalten.table_nameist der Name der Tabelle, aus der Sie Daten abfragen möchten.WHERE conditionist die Klausel, mit der die Filterbedingung angegeben wird.
Zusätzliche Hinweise:
- In einer Abfrageanweisung können Sie eine oder mehrere Tabellen verwenden, und Kommas werden zwischen den Tabellen verwendet,,um sie zu trennen, und Sie können die WHERE-Anweisung verwenden, um Abfragebedingungen festzulegen.
- Sie können jede beliebige Bedingung in der WHERE-Klausel angeben.
- Sie können AND oder OR verwenden, um eine oder mehrere Bedingungen anzugeben.
- Die WHERE-Klausel kann auch auf SQL DELETE- oder UPDATE-Befehle angewendet werden.
- Die WHERE-Klausel ähnelt einer if-Bedingung in Programmiersprachen; sie liest die angegebenen Daten basierend auf den Feldwerten in einer MySQL-Tabelle.
Das Folgende ist eine Liste von Operatoren, die in der WHERE-Klausel verwendet werden können.
In den Beispielen in der folgenden Tabelle wird angenommen, dass A 10 und B 20 ist.
| Operator | Beschreibung | Beispiel |
|---|---|---|
| = | Gleichheitszeichen, prüft, ob zwei Werte gleich sind; gibt true zurück, wenn sie gleich sind. | (A = B) gibt false zurück. |
| <>, != | Ungleich, prüft, ob zwei Werte gleich sind; gibt true zurück, wenn sie nicht gleich sind. | (A != B) gibt true zurück. |
| > | Größer-als-Zeichen, prüft, ob der Wert auf der linken Seite größer als der Wert auf der rechten Seite ist; gibt true zurück, wenn der linke Wert größer als der rechte Wert ist. | (A > B) gibt false zurück. |
| < | Kleiner-als-Zeichen, prüft, ob der Wert auf der linken Seite kleiner als der Wert auf der rechten Seite ist; gibt true zurück, wenn der linke Wert kleiner als der rechte Wert ist. | (A < B) gibt true zurück. |
| >= | Größer-gleich-Zeichen, prüft, ob der Wert auf der linken Seite größer oder gleich dem Wert auf der rechten Seite ist; gibt true zurück, wenn der linke Wert größer oder gleich dem rechten Wert ist. | (A >= B) gibt false zurück. |
| <= | Kleiner-gleich-Zeichen, prüft, ob der Wert auf der linken Seite kleiner oder gleich dem Wert auf der rechten Seite ist; gibt true zurück, wenn der linke Wert kleiner oder gleich dem rechten Wert ist. | (A <= B) gibt true zurück. |
Einfache Beispiele
1. Gleichheitsbedingung:
SELECT * FROM users WHERE username = 'test';
2. Ungleichheitsbedingung:
SELECT * FROM users WHERE username != 'example';
3. Größer-als-Bedingung:
SELECT * FROM products WHERE price > 50.00;
4. Kleiner-als-Bedingung:
SELECT * FROM orders WHERE order_date < '2023-01-01';
5. Größer-gleich-Bedingung:
SELECT * FROM employees WHERE salary >= 50000;
6. Kleiner-gleich-Bedingung:
SELECT * FROM students WHERE age <= 21;
7. Kombinierte Bedingungen (AND, OR):
SELECT * FROM products WHERE category = 'Electronics' AND price > 100.00; SELECT * FROM orders WHERE order_date >= '2023-01-01' OR total_amount > 1000.00;
8. Fuzzy-Matching-Bedingung (LIKE):
SELECT * FROM customers WHERE first_name LIKE 'J%';
9. IN-Bedingung:
SELECT * FROM countries WHERE country_code IN ('US', 'CA', 'MX');
10. Bedingung:
SELECT * FROM products WHERE NOT category = 'Clothing';
11. BETWEEN-Bedingung:
SELECT * FROM orders WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';
12. IS NULL-Bedingung
SELECT * FROM employees WHERE department IS NULL;
13. IS NOT NULL-Bedingung:
SELECT * FROM customers WHERE email IS NOT NULL;
Wenn wir bestimmte Daten aus einer MySQL-Datentabelle lesen möchten, ist die WHERE-Klausel sehr nützlich.
Die Verwendung eines Primärschlüssels als Bedingung in einer WHERE-Klausel ist sehr schnell.
Wenn die angegebene Bedingung keine übereinstimmenden Datensätze in der Tabelle hat, gibt die Abfrage keine Daten zurück.
Daten aus der Eingabeaufforderung lesen
Wir werdenSELECTverwenden, um mit der WHERE-Klausel in der Anweisung Daten aus der MySQL-Datentabelle example_tbl zu lesen.
Das folgende Beispiel liest alle Datensätze in der Tabelle example_tbl, bei denen der Wert des Feldes example_author Sanjay ist:
SQL SELECT WHERE-Klausel
Ausgabeergebnis:
Bei Zeichenkettenvergleichen in der MySQL-WHERE-Klausel wird die Groß-/Kleinschreibung nicht unterschieden. Sie können das BINARY-Schlüsselwort verwenden, um bei Zeichenkettenvergleichen in der WHERE-Klausel die Groß-/Kleinschreibung zu unterscheiden.
Wie im folgenden Beispiel:
BINARY-Schlüsselwort
Im Beispiel wird dasBINARY-Schlüsselwort verwendet, bei dem die Groß-/Kleinschreibung beachtet wird; daher liefert die Abfragebedingungexample_author='example.com'keine Daten.
Daten lesen mit PHP-Skript
Sie können die PHP-Funktion mysqli_query() und denselben SQL-SELECT-Befehl mit einer WHERE-Klausel verwenden, um Daten abzurufen.
Diese Funktion wird verwendet, um den SQL-Befehl auszuführen und dann alle abgefragten Daten über die PHP-Funktion mysqli_fetch_array() auszugeben.
Beispiel
Das folgende Beispiel gibt aus der Tabelle example_tbl die Datensätze zurück, bei denen der Wert des Feldes example_authorexample.com ist.:
MySQL WHERE-Klausel-Test:
Das Ausgabeergebnis ist wie folgt: