MySQLi - LIKE-Klausel

Wir haben SQL gesehen SELECTBefehl zum Abrufen von Daten aus der MySQLi-Tabelle. Wir können auch eine Bedingungsklausel namens verwendenWHERE Klausel zur Auswahl der erforderlichen Datensätze.

Eine WHERE-Klausel mit Gleichheitszeichen (=) funktioniert gut, wenn wir eine exakte Übereinstimmung durchführen möchten. Wie wenn "name = 'sai'". Es kann jedoch eine Anforderung geben, bei der alle Ergebnisse herausgefiltert werden sollen, bei denen der Name "johar" enthalten soll. Dies kann mit SQL erledigt werdenLIKE Klausel zusammen mit WHERE-Klausel.

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

Ohne ein% -Zeichen ist die LIKE-Klausel dem Gleichheitszeichen zusammen mit der WHERE-Klausel sehr ähnlich.

Syntax

Hier ist die generische SQL-Syntax des SELECT-Befehls zusammen mit der LIKE-Klausel zum Abrufen von Daten aus der MySQLi-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 des Gleichheitszeichens verwenden.

  • 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 ausgewählte Daten aus der MySQLi-Tabelle tutorials_inf abzurufen.

Beispiel

Das folgende Beispiel gibt alle Datensätze von zurück tutorials_inf Tabelle, mit der der Autorenname endet johar - -

root@host# mysql -u root -p password;
Enter password:*******

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf 
   -> WHERE name LIKE '%johar';
+----+-------+
| id | name  |
+----+-------+
|  2 | johar |
+----+-------+
1 row in set (0.00 sec)

mysql>

Verwenden der LIKE-Klausel in PHP Script

Sie können eine ähnliche Syntax der WHERE ... LIKE-Klausel für die PHP-Funktion verwenden mysqli_query(). Diese Funktion wird verwendet, um den SQL-Befehl und später eine andere PHP-Funktion auszuführenmysqli_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_inf Tabelle, für die der Name enthält johar - -

<?php
   $dbhost = 'localhost:3306';
   $dbuser = 'root';
   $dbpass = '';
   $dbname = 'TUTORIALS';
   $conn = mysqli_connect($dbhost, $dbuser, $dbpass,$dbname);
   
   if(! $conn ) {
      die('Could not connect: ' . mysqli_error());
   }
   echo 'Connected successfully<br>';
   $sql = 'SELECT * FROM tutorials_inf WHERE name LIKE "%johar%"';
   $result = mysqli_query($conn, $sql);
   $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
   
   printf ("%s \n",$row["name"]);
   mysqli_free_result($result);
   mysqli_close($conn);
?>

Die Beispielausgabe sollte folgendermaßen aussehen:

Connected successfully
johar