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演算子と組み合わせる場合は、演算の優先順位に注意し、必要に応じて括弧 ( ) を使って条件を明示すると意図しない結果を防げます。
-
MySQLでWHERE句に複数の条件を指定してデータを更新する方法
MySQLでWHERE句に複数の値を指定して更新する方法MySQLのUPDATE文では、WHERE句に複数の条件を組み合わせることで、より正確に対象のレコードを絞り込んで更新することができます。AND演算子やOR演算子を使うことで、複数のカラムの値を条件として指定可能です。この記事では、実際にテーブルを作成し、WHERE句に複数の条件を指定してデータを更新する手順を具体的な例とともに解説します。まずはテーブルを作成する最初に、サンプル用のテーブルを作成しましょう。mysql> create table DemoTable -> ( -> Id int, -&
-
MySQLでSELECTフィールドごとに条件を適用する方法:WHERE句の代わりにCASE式を使う
MySQLでSELECTフィールドごとに条件を適用するには MySQLでは、WHERE句を使わなくても、SELECT文の中でCASE式を利用することで、フィールドごとに個別の条件を設定できます。ここでは、具体的なサンプルコードとともにその方法を解説します。 1. テーブルを作成する まず、CREATE TABLE文でサンプル用のテーブルを作成します。 mysql> create table DemoTable1988 ( Value1 int,