MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのWHERE句でOR演算子を使う方法を解説

OR演算子は、複数の条件のうちどれか一つでも真(true)であれば、結果としてtrueを返す論理演算子です。MySQLのWHERE句と組み合わせることで、「名前が◯◯、または年齢が◯◯」のような柔軟な条件指定が可能になります。

この記事では、実際にテーブルを作成し、OR演算子を使ったレコード抽出の方法をサンプルSQLとともに解説します。

1. サンプルテーブルの作成

まず、クライアント情報を管理するテーブルを作成します。

mysql> create table DemoTable663(ClientId int,ClientName varchar(100),ClientAge int);
Query OK, 0 rows affected (0.55 sec)

2. テストデータの挿入

INSERT文を使って、テーブルにいくつかのレコードを追加します。

mysql> insert into DemoTable663 values(100,'Chris',45);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable663 values(101,'Robert',29);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable663 values(102,'John',45);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable663 values(103,'Chris',35);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable663 values(104,'Sam',45);
Query OK, 1 row affected (0.72 sec)

3. 挿入したレコードの確認

SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認しましょう。

mysql> select *from DemoTable663;

実行結果は以下のとおりです。

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
| 100      | Chris      |        45 |
| 101      | Robert     |        29 |
| 102      | John       |        45 |
| 103      | Chris      |        35 |
| 104      | Sam        |        45 |
+----------+------------+-----------+
5 rows in set (0.00 sec)

4. OR演算子を使ったレコードの抽出

それでは、WHERE句でOR演算子を実装してみましょう。次のクエリでは、「クライアント名が 'Chris' または 年齢が45歳」という条件に一致するレコードを抽出します。

mysql> select *from DemoTable663 where ClientName='Chris' OR ClientAge=45;

実行結果は以下のとおりです。

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
| 100      | Chris      |        45 |
| 102      | John       |        45 |
| 103      | Chris      |        35 |
| 104      | Sam        |        45 |
+----------+------------+-----------+
4 rows in set (0.00 sec)

結果のポイント

出力結果を見ると、次のレコードが取得できています。

ClientName='Chris' に一致するレコード:ClientId 100(年齢45)と ClientId 103(年齢35)。年齢が35歳であっても、名前の条件を満たしているため抽出されています。

ClientAge=45 に一致するレコード:ClientId 102(John)と ClientId 104(Sam)。名前は 'Chris' ではありませんが、年齢の条件を満たしているため抽出されています。

このように、OR演算子を使うと複数の条件のいずれかを満たすレコードをまとめて取得できるため、検索条件を柔軟に組み立てたい場合に非常に便利です。なお、AND演算子と組み合わせる場合は、演算の優先順位に注意し、必要に応じて括弧 ( ) を使って条件を明示すると意図しない結果を防げます。

  1. MySQLでWHERE句に複数の条件を指定してデータを更新する方法

    MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&

  2. MySQLでSELECTフィールドごとに条件を適用する方法:WHERE句の代わりにCASE式を使う

    MySQLでSELECTフィールドごとに条件を適用するには MySQLでは、WHERE句を使わなくても、SELECT文の中でCASE式を利用することで、フィールドごとに個別の条件を設定できます。ここでは、具体的なサンプルコードとともにその方法を解説します。 1. テーブルを作成する まず、CREATE TABLE文でサンプル用のテーブルを作成します。 mysql> create table DemoTable1988     (     Value1 int,