MySQL - LIKE Klausel

Wir haben die SQL gesehen SELECTBefehl zum Abrufen von Daten aus der MySQL-Tabelle. Wir können auch eine Bedingungsklausel verwenden, die alsWHERE Klausel zur Auswahl der erforderlichen Datensätze.

Eine WHERE-Klausel mit dem Gleichheitszeichen (=) funktioniert gut, wenn wir eine genaue Übereinstimmung erzielen möchten. Wie wenn "tutorial_author = 'Sanjay'". Möglicherweise müssen wir jedoch alle Ergebnisse herausfiltern, bei denen der Name tutorial_author "jay" enthalten soll. Dies kann mit behandelt werdenSQL LIKE Clause zusammen mit der WHERE-Klausel.

Wenn die SQL LIKE-Klausel zusammen mit dem% -Zeichen verwendet wird, funktioniert sie wie ein Metazeichen (*) wie unter UNIX, während alle Dateien oder Verzeichnisse an der Eingabeaufforderung aufgelistet werden. Ohne ein% -Zeichen entspricht die LIKE-Klausel derequal to unterschreiben Sie zusammen mit der WHERE-Klausel.

Syntax

Der folgende Codeblock enthält eine generische SQL-Syntax des Befehls SELECT sowie die LIKE-Klausel zum Abrufen von Daten aus einer MySQL-Tabelle.

SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
  • Sie können jede Bedingung mit der WHERE-Klausel angeben.

  • Sie können die LIKE-Klausel zusammen mit der WHERE-Klausel verwenden.

  • Sie können die LIKE-Klausel anstelle von verwenden equals to Zeichen.

  • Wenn LIKE zusammen mit dem% -Zeichen verwendet wird, funktioniert es wie eine Metazeichensuche.

  • Sie können mit mehr als einer Bedingung angeben AND oder OR Betreiber.

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

Verwenden der LIKE-Klausel an der Eingabeaufforderung

Dies verwendet den SQL SELECT-Befehl mit der WHERE ... LIKE-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, mit der der Autorenname endet jay - -

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

mysql>

Verwenden der LIKE-Klausel in PHP Script

Sie können eine ähnliche Syntax der WHERE ... LIKE-Klausel in der PHP-Funktion verwenden - mysql_query(). Diese Funktion wird verwendet, um den SQL-Befehl und später eine andere PHP-Funktion auszuführen -mysql_fetch_array() kann verwendet werden, um alle ausgewählten Daten abzurufen, wenn die WHERE ... LIKE-Klausel zusammen mit dem SELECT-Befehl verwendet wird.

Wenn jedoch die WHERE ... LIKE-Klausel mit dem Befehl DELETE oder UPDATE verwendet wird, ist kein weiterer PHP-Funktionsaufruf erforderlich.

Beispiel

Probieren Sie das folgende Beispiel aus, um alle Datensätze von zurückzugeben tutorials_tbl Tabelle, für die der Autorenname enthält jay - -

<?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 LIKE "%jay%"';

   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);
?>