MySQLi-LIKE句
SQLを見てきました SELECTMySQLiテーブルからデータをフェッチするコマンド。と呼ばれる条件節を使用することもできますWHERE 必要なレコードを選択する句。
等号(=)を含むWHERE句は、完全に一致させたい場合に正常に機能します。「name = 'sai'」のように。ただし、名前に「johar」を含める必要があるすべての結果を除外する必要がある場合があります。これはSQLを使用して処理できますLIKE WHERE句と一緒に句。
SQL LIKE句を%文字とともに使用すると、UNIXではメタ文字(*)のように機能し、コマンドプロンプトですべてのファイルまたはディレクトリを一覧表示します。
%文字がない場合、LIKE句はWHERE句とともに等号に非常に似ています。
構文
これは、MySQLiテーブルからデータをフェッチするためのSELECTコマンドの一般的なSQL構文とLIKE句です。
SELECT field1, field2,...fieldN table_name1, table_name2...
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
WHERE句を使用して任意の条件を指定できます。
WHERE句と一緒にLIKE句を使用できます。
等号の代わりにLIKE句を使用できます。
LIKEを%記号とともに使用すると、メタ文字検索のように機能します。
を使用して複数の条件を指定できます AND または OR 演算子。
WHERE ... LIKE句をDELETEまたはUPDATESQLコマンドと一緒に使用して、条件を指定することもできます。
コマンドプロンプトでLIKE句を使用する
これは、WHERE ... LIKE句を指定したSQLSELECTコマンドを使用して、MySQLiテーブルtutorials_infから選択したデータをフェッチします。
例
次の例では、からのすべてのレコードが返されます tutorials_inf 著者名がで終わるテーブル 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>
PHPスクリプト内でのLIKE句の使用
WHERE ... LIKE句と同様の構文をPHP関数に使用できます mysqli_query()。この関数は、SQLコマンドと後で別のPHP関数を実行するために使用されますmysqli_fetch_array() WHERE ... LIKE句をSELECTコマンドと一緒に使用すると、選択したすべてのデータをフェッチするために使用できます。
ただし、WHERE ... LIKE句がDELETEまたはUPDATEコマンドで使用されている場合は、それ以上のPHP関数呼び出しは必要ありません。
例
次の例を試して、からすべてのレコードを返します tutorials_inf 名前に含まれるテーブル 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);
?>
サンプル出力は次のようになります-
Connected successfully
johar