MySQLi-WHERE句

SQLを見てきました SELECTMySQLiテーブルからデータをフェッチするコマンド。と呼ばれる条件節を使用できますWHERE結果を除外する句。WHERE句を使用すると、選択基準を指定して、テーブルから必要なレコードを選択できます。

構文

これは、MySQLiテーブルからデータをフェッチするためのWHERE句を含むSELECTコマンドの一般的なSQL構文です。

SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
  • カンマで区切られた1つ以上のテーブルを使用して、WHERE句を使用してさまざまな条件を含めることができますが、WHERE句はSELECTコマンドのオプション部分です。

  • WHERE句を使用して任意の条件を指定できます。

  • を使用して複数の条件を指定できます AND または OR 演算子。

  • WHERE句をDELETEまたはUPDATESQLコマンドと一緒に使用して、条件を指定することもできます。

ザ・ WHERE句は、任意のプログラミング言語のif条件のように機能します。この句は、指定された値をMySQLiテーブルで使用可能なフィールド値と比較するために使用されます。外部からの指定された値がMySQLiテーブルで使用可能なフィールド値と等しい場合、その行を返します。

これは、で使用できる演算子のリストです。 WHERE 句。

フィールドAが10を保持し、フィールドBが20を保持すると仮定すると、-

オペレーター 説明
= 2つのオペランドの値が等しいかどうかをチェックし、等しい場合は条件が真になります。 (A = B)は真ではありません。
!= 2つのオペランドの値が等しいかどうかをチェックし、値が等しくない場合は条件が真になります。 (A!= B)は真です。
>> 左のオペランドの値が右のオペランドの値より大きいかどうかを確認します。大きい場合は、条件が真になります。 (A> B)は正しくありません。
< 左のオペランドの値が右のオペランドの値よりも小さいかどうかを確認します。小さい場合は、条件が真になります。 (A <B)は真です。
> = 左のオペランドの値が右のオペランドの値以上であるかどうかをチェックします。はいの場合、条件は真になります。 (A> = B)は正しくありません。
<= 左のオペランドの値が右のオペランドの値以下であるかどうかをチェックします。はいの場合、条件は真になります。 (A <= B)は真です。

WHERE句は、テーブルから選択した行をフェッチする場合、特にを使用する場合に非常に便利です。 MySQLi Join。結合については、別の章で説明します。

を使用してレコードを検索するのが一般的な方法です。 Primary Key 検索を高速化します。

指定された条件がテーブル内のどのレコードとも一致しない場合、クエリは行を返しません。

コマンドプロンプトからデータを取得する

これは、WHERE句を指定したSQL SELECTコマンドを使用して、MySQLiテーブルtutorials_infから選択したデータをフェッチします。

次の例では、からのすべてのレコードが返されます tutorials_inf 名前が sai

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

mysql> use TUTORIALS;
Database changed

mysql>SELECT * from tutorials_inf where name = 'sai';
+----+------+
| id | name |
+----+------+
|  1 | SAI  |
+----+------+
1 row in set (0.00 sec)

mysql>

実行しない限り LIKE文字列での比較では、大文字と小文字は区別されません。を使用して、検索で大文字と小文字を区別することができますBINARY 次のようなキーワード-

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

mysql> use TUTORIALS;
Database changed

mysql> SELECT * from tutorials_inf \WHERE BINARY name = 'sai';
Empty set (0.02 sec)

mysql>

PHPスクリプトを使用したデータのフェッチ:

同じSQLSELECTコマンドをWHERECLAUSEでPHP関数に使用できます mysqli_query()

次の例では、からのすべてのレコードが返されます tutorials_inf 名前が sai

<?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="sai"';
   $result = mysqli_query($conn, $sql);

   if (mysqli_num_rows($result) > 0) {
      while($row = mysqli_fetch_assoc($result)) {
         echo "Name: " . $row["name"]. "<br>";
      }
   } else {
      echo "0 results";
   }
   mysqli_close($conn);
?>

サンプル出力は次のようになります-

Connected successfully
Name: SAI