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

MySQLWHERE子句

MySQLのテーブルからSQL SELECT文を使用してデータを読み取る方法について知っています。

条件付きでテーブルからデータを選択する場合は、WHERE句をSELECT文に追加できます。

文法

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

SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • クエリ文では、1つまたは複数のテーブルを使用し、テーブル間をカンマで区切って、WHERE文を使用してクエリ条件を設定できます。

  • WHERE句でどんな条件でも指定できます。

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

  • WHERE句はSQLのDELETEまたはUPDATEコマンドにも適用できます。

  • WHERE句はプログラミング言語のif条件に似て、MySQLのテーブルのフィールド値に基づいて指定されたデータを読み取ります。

以下は、WHERE子句で使用できる演算子リストです。

以下のテーブルの例では、A は 10, B は 20

演算子説明
=等号,检测两个值是否相等,如果相等返回true(A = B) は false を返します。
, !=不等于,检测两个值是否相等,如果不相等返回true(A != B) は true を返します。
>大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true(A > B) は false を返します。
<小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true(A < B) は true を返します。
>=大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true(A >= B) は false を返します。
<=小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true(A <= B) は true を返します。

MySQLデータテーブルから指定されたデータを読み取るためにWHERE子句は非常に有用です。

WHERE子句の条件として主キーを使用することは非常に高速です。

指定された条件がテーブルに一致するレコードがない場合、クエリはデータを返しません。

コマンドプロンプトからデータを読み取ります

SQL SELECT文のWHERE子句を使用してMySQLデータテーブル w3codebox_tbl のデータ:

以下の例では、w3codebox_tbl テーブル中の w3codebox_author フィールドの値が Sanjay のすべてのレコード:

SELECT * from w3codebox_tbl WHERE w3codebox_author='基础教程网';

出力結果:

MySQLのWHERE子句の文字列比較は大文字と小文字を区別しません。 WHERE 子句の文字列比較を大文字と小文字を区別するように設定するには、BINARY キーワードを使用できます。

以下の例:

BINARY キーワード

mysql> SELECT * from w3codebox_tbl WHERE BINARY w3codebox_author='oldtoolbag.com';
Empty set (0.01 sec)
 
mysql> SELECT * from w3codebox_tbl WHERE BINARY w3codebox_author='oldtoolbag.com';
+----------+-------------+--------------+-----------------+
| w3codebox_id | w3codebox_title | w3codebox_author | submission_date |
+----------+-------------+--------------+-----------------+
|        1 | PHP を学ぶ  | oldtoolbag.com  | 2018-04-14      |
|        2 | MySQL を学ぶ  | oldtoolbag.com  | 2018-04-14      |
|        3 | JAVA チュートリアル  | oldtoolbag.com  | 2018-04-14      |
+----------+-------------+--------------+-----------------+
3 rows in set (0.00 sec)

サンプルでは BINARY キーワードは大文字と小文字を区別しますので、 w3codebox_author='oldtoolbag.com' のクエリ条件はデータがありません。

PHP スクリプトを使用してデータを読み取る

あなたは mysqli_query() 関数と同じ SQL SELECT 命令に WHERE 子句を付けてデータを取得することができます。

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

オンラインサンプル

以下の例は w3codebox_tbl テーブルから w3codebox_author フィールドの値が oldtoolbag.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);
 
// 読み取る w3codebox_author 为 oldtoolbag.com 的データ
$sql = 'SELECT w3codebox_id, w3codebox_title, 
        w3codebox_author, submission_date
        FROM w3codebox_tbl
        WHERE w3codebox_author="oldtoolbag.com"';
 
mysqli_select_db($conn, 'w3codebox');
$retval = mysqli_query($conn, $sql);
if(! $retval )
{
    die('データを読み込めません: ' . mysqli_error($conn));
}
echo '<h2>基本チュートリアル網MySQLWHERE子句テスト<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_free_result($retval);
mysqli_close($conn);
?>

以下に結果を出力します: