English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

MySQL LIKE 子句

MySQLでSQL SELECT コマンドを使用してデータを読み取ることを知っています。 同時に、SELECT 文で WHERE 子句を使用して指定されたレコードを取得できます。

WHERE 子句で等号 = を使用してデータの取得条件を設定できます、例えば「w3codebox_author = 'oldtoolbag.com'"。

しかし、時には w3codebox_author フィールドに「COM」文字が含まれるすべてのレコードがあれば、WHERE 子句で SQL LIKE 子句を使用する必要があります。

SQL LIKE 子句では、百分号 % 文字を使用して任意の文字を表し、UNIXや正規表現の星号に似ています。 *。

百分号 % を使用していない場合、LIKE 子句は等号 = の効果と同じです。

文法

以下は、LIKE 子句を使用してデータテーブルからデータを読み取る SQL SELECT 文の一般的な文法です:

SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] field2 = 'somevalue'
  • WHERE 子句でどんな条件でも指定できます。

  • WHERE 子句で LIKE 子句を使用できます。

  • LIKE 子句を使用して等号 = の代わりにできます。

  • LIKE は通常、% と一緒に使用され、ワイルドカード文字の検索に似ています。

  • AND または OR を使用して、1つまたは複数の条件を指定できます。

  • DELETE または UPDATE コマンドで WHERE...LIKE 子句を使用して条件を指定できます。

コマンドプロンプトで LIKE 子句を使用します

以下では、SQL SELECT コマンドで WHERE...LIKE 子句を使用して MySQL データテーブル w3codebox_tbl からデータを読み取ります。

オンラインサンプル

以下に、w3codebox_tbl テーブルから w3codebox_authorフィールドにCOMで終わるすべてのレコード:

mysql> use w3codebox;
Database changed
mysql> SELECT * from w3codebox_tbl  WHERE w3codebox_author LIKE '%COM';
+-----------+---------------+---------------+-----------------+
| w3codebox_id | w3codebox_title  | w3codebox_author | submission_date |
+-----------+---------------+---------------+-----------------+
| 3         | Javaを学ぶ  | oldtoolbag.com  | 2015-05-01      |
| 4         | Pythonを学ぶ | oldtoolbag.com  | 2016-03-06      |
+-----------+---------------+---------------+-----------------+
2 rows in set (0.01 sec)

PHPスクリプトでLIKE句を使用する

あなたは、mysqli_query()関数と同じSQL SELECT命令にWHERE...LIKE句を追加してデータを取得することができます。

この関数は、SQLコマンドを実行し、PHP関数mysqli_fetch_array()を使用してすべてのクエリデータを出力するために使用されます。

ただし、DELETEまたはUPDATEでWHERE...LIKE句を使用するSQL文では、mysqli_fetch_array()関数を使用する必要はありません。

オンラインサンプル

以下は、PHPスクリプトを使用してw3codebox_tblテーブルからw3codebox_authorフィールドにCOMで終わるすべてのレコード:

<?php
$dbhost = 'localhost';  // MySQLのサーバー主机のアドレス
$dbuser = 'root';            // MySQLのユーザー名
$dbpass = '123456';          // MySQLのユーザー名とパスワード
$conn = mysqli_connect($dbhost, $dbuser, $dbpass);
if(! $conn)
{
    die('接続失敗: ' . mysqli_error($conn));
}
// 設定エンコーディング、中華文字の乱れを防ぐ
mysqli_query($conn, "set names utf8');
 
$sql = 'SELECT w3codebox_id, w3codebox_title, 
        w3codebox_author, submission_date
        FROM w3codebox_tbl
        WHERE w3codebox_author LIKE "%COM"';
 
mysqli_select_db($conn, 'w3codebox');
$retval = mysqli_query($conn, $sql);
if(! $retval )}}
{
    die('データの読み取りに失敗しました: ' . mysqli_error($conn));
}
echo '<h2>基础教程网 mysqli_fetch_array テスト<h2">;</
echo '<table border="1><tr><td>チュートリアル ID</td><td>タイトル</td><td>著者</td><td>提出日付</td></tr>';
while($row = mysqli_fetch_array($retval, MYSQLI_ASSOC))
{
    echo "<tr><td> {$row['w3codebox_id']}</td> ".
         "<td>{$row['w3codebox_title']} </td> ".
         "<td>{$row['w3codebox_author']} </td> ".
         "<td>{$row['submission_date']} </td> ".
         "</tr>";
}
echo '</table>';
mysqli_close($conn);
?>

以下の図に示される結果を出力します: