MySQL - WHERE-Klausel

Wir haben die SQL gesehen SELECTBefehl zum Abrufen von Daten aus einer MySQL-Tabelle. Wir können eine Bedingungsklausel verwenden, die alsWHERE Clauseum die Ergebnisse herauszufiltern. Mit dieser WHERE-Klausel können wir Auswahlkriterien angeben, um die erforderlichen Datensätze aus einer Tabelle auszuwählen.

Syntax

Der folgende Codeblock enthält eine generische SQL-Syntax des Befehls SELECT mit der WHERE-Klausel zum Abrufen von Daten aus der MySQL-Tabelle.

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • Sie können eine oder mehrere durch Komma getrennte Tabellen verwenden, um verschiedene Bedingungen mithilfe einer WHERE-Klausel einzuschließen. Die WHERE-Klausel ist jedoch ein optionaler Teil des SELECT-Befehls.

  • Sie können jede Bedingung mit der WHERE-Klausel angeben.

  • Sie können mehr als eine Bedingung mit dem angeben AND oder der OR Betreiber.

  • Eine WHERE-Klausel kann zusammen mit dem SQL-Befehl DELETE oder UPDATE verwendet werden, um auch eine Bedingung anzugeben.

Das WHERE Klausel funktioniert wie eine if conditionin jeder Programmiersprache. Diese Klausel wird verwendet, um den angegebenen Wert mit dem in einer MySQL-Tabelle verfügbaren Feldwert zu vergleichen. Wenn der angegebene Wert von außen dem verfügbaren Feldwert in der MySQL-Tabelle entspricht, wird diese Zeile zurückgegeben.

Hier ist die Liste der Operatoren, die mit dem verwendet werden können WHERE Klausel.

Angenommen, Feld A enthält 10 und Feld B enthält 20, dann -

Operator Beschreibung Beispiel
= Überprüft, ob die Werte der beiden Operanden gleich sind oder nicht. Wenn ja, wird die Bedingung erfüllt. (A = B) ist nicht wahr.
! = Überprüft, ob die Werte der beiden Operanden gleich sind oder nicht. Wenn die Werte nicht gleich sind, wird die Bedingung wahr. (A! = B) ist wahr.
> Überprüft, ob der Wert des linken Operanden größer als der Wert des rechten Operanden ist. Wenn ja, wird die Bedingung erfüllt. (A> B) ist nicht wahr.
< Überprüft, ob der Wert des linken Operanden kleiner als der Wert des rechten Operanden ist. Wenn ja, wird die Bedingung erfüllt. (A <B) ist wahr.
> = Überprüft, ob der Wert des linken Operanden größer oder gleich dem Wert des rechten Operanden ist. Wenn ja, wird die Bedingung erfüllt. (A> = B) ist nicht wahr.
<= Überprüft, ob der Wert des linken Operanden kleiner oder gleich dem Wert des rechten Operanden ist. Wenn ja, wird die Bedingung erfüllt. (A <= B) ist wahr.

Die WHERE-Klausel ist sehr nützlich, wenn Sie die ausgewählten Zeilen aus einer Tabelle abrufen möchten, insbesondere wenn Sie die verwenden MySQL Join. Joins werden in einem anderen Kapitel behandelt.

Es ist üblich, mit dem nach Datensätzen zu suchen Primary Key um die Suche schneller zu machen.

Wenn die angegebene Bedingung keinem Datensatz in der Tabelle entspricht, gibt die Abfrage keine Zeile zurück.

Abrufen von Daten von der Eingabeaufforderung

Dies verwendet den SQL SELECT-Befehl mit der WHERE-Klausel, um die ausgewählten Daten aus der MySQL-Tabelle abzurufen. tutorials_tbl.

Beispiel

Im folgenden Beispiel werden alle Datensätze aus dem zurückgegeben tutorials_tbl Tabelle, für die der Autorenname lautet Sanjay.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl WHERE tutorial_author = 'Sanjay';
+-------------+----------------+-----------------+-----------------+
| tutorial_id | tutorial_title | tutorial_author | submission_date |
+-------------+----------------+-----------------+-----------------+
|      3      | JAVA Tutorial  |      Sanjay     |    2007-05-21   |      
+-------------+----------------+-----------------+-----------------+
1 rows in set (0.01 sec)

mysql>

Es sei denn, Sie führen eine LIKEBeim Vergleich einer Zeichenfolge wird nicht zwischen Groß- und Kleinschreibung unterschieden. Sie können Ihre Suche zwischen Groß- und Kleinschreibung unterscheiden, indem Sie die Option verwendenBINARY Schlüsselwort wie folgt -

root@host# mysql -u root -p password;
Enter password:*******
mysql> use TUTORIALS;
Database changed
mysql> SELECT * from tutorials_tbl \
   WHERE BINARY tutorial_author = 'sanjay';
Empty set (0.02 sec)

mysql>

Abrufen von Daten mit einem PHP-Skript

Sie können denselben SQL SELECT-Befehl mit WHERE CLAUSE in der PHP-Funktion verwenden mysql_query(). Diese Funktion wird verwendet, um den SQL-Befehl und später eine andere PHP-Funktion auszuführenmysql_fetch_array()kann verwendet werden, um alle ausgewählten Daten abzurufen. Diese Funktion gibt eine Zeile als assoziatives Array, numerisches Array oder beides zurück. Diese Funktion gibt FALSE zurück, wenn keine Zeilen mehr vorhanden sind.

Beispiel

Im folgenden Beispiel werden alle Datensätze aus dem zurückgegeben tutorials_tbl Tabelle, für die der Autorenname lautet Sanjay - -

<?php
   $dbhost = 'localhost:3036';
   $dbuser = 'root';
   $dbpass = 'rootpassword';
   $conn = mysql_connect($dbhost, $dbuser, $dbpass);

   if(! $conn ) {
      die('Could not connect: ' . mysql_error());
   }

   $sql = 'SELECT tutorial_id, tutorial_title, 
      tutorial_author, submission_date
      FROM tutorials_tbl
      WHERE tutorial_author = "Sanjay"';

   mysql_select_db('TUTORIALS');
   $retval = mysql_query( $sql, $conn );

   if(! $retval ) {
      die('Could not get data: ' . mysql_error());
   }

   while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
      echo "Tutorial ID :{$row['tutorial_id']}  <br> ".
      "Title: {$row['tutorial_title']} <br> ".
      "Author: {$row['tutorial_author']} <br> ".
      "Submission Date : {$row['submission_date']} <br> ".
      "--------------------------------<br>";
   } 

   echo "Fetched data successfully\n";
   mysql_close($conn);
?>