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