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

MySQLでAND演算子とOR演算子を組み合わせたSELECTクエリの使い方

MySQLでは、WHERE句の中でAND演算子とOR演算子を組み合わせることで、複数の条件に基づいた柔軟なデータ抽出が可能になります。この記事では、実際にテーブルを作成し、ANDとORを組み合わせたSELECTクエリの実行方法を手順を追って解説します。

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

まず、CREATE TABLE文を使用してテーブルを作成します。

mysql> create table DemoTable
(
    StudentId int,
    StudentName varchar(20),
    StudentSubject varchar(20)
);
Query OK, 0 rows affected (0.62 sec)

2. レコードの挿入

次に、INSERTコマンドを使ってテーブルにレコードを挿入します。

mysql> insert into DemoTable values(10,'Chris','MongoDB');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable values(11,'David','MySQL');
Query OK, 1 row affected (0.22 sec)
mysql> insert into DemoTable values(12,'Bob','Java');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values(10,'Carol','MySQL');
Query OK, 1 row affected (0.51 sec)
mysql> insert into DemoTable values(10,'Chris','MongoDB');
Query OK, 1 row affected (0.20 sec)
mysql> insert into DemoTable values(14,'David','MySQL');
Query OK, 1 row affected (0.12 sec)

3. テーブル内の全レコードを表示

SELECT文を使用して、テーブル内のすべてのレコードを表示して確認しましょう。

mysql> select *from DemoTable;

上記のクエリを実行すると、以下のような結果が出力されます。

+-----------+-------------+----------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+----------------+
|        10 | Chris       | MongoDB        |
|        11 | David       | MySQL          |
|        12 | Bob         | Java           |
|        10 | Carol       | MySQL          |
|        10 | Chris       | MongoDB        |
|        14 | David       | MySQL          |
+-----------+-------------+----------------+
6 rows in set (0.00 sec)

4. ANDとORを組み合わせた選択クエリの実行

ここが本題です。ANDとORを組み合わせて条件を指定するSELECTクエリは以下のようになります。

mysql> select *from DemoTable where StudentName='David' and StudentSubject='MySQL' OR StudentId=11;

実行すると、次の出力が得られます。

+-----------+-------------+----------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+----------------+
|        11 | David       | MySQL          |
|        14 | David       | MySQL          |
+-----------+-------------+----------------+
2 rows in set (0.00 sec)

結果の解説

SQLでは、AND演算子はOR演算子よりも優先順位が高いため、上記のクエリは次のように評価されます。

WHERE (StudentName='David' AND StudentSubject='MySQL') OR (StudentId=11)

つまり、「名前がDavidかつ科目がMySQLであるレコード」または「StudentIdが11であるレコード」のいずれかに該当する行が抽出されます。そのため、StudentId=11の「David / MySQL」と、最初の条件を満たすStudentId=14の「David / MySQL」の2行が結果として表示されています。

まとめ

ANDとORを組み合わせることで、単一の条件では実現できない複雑な検索が可能になります。ただし、演算子の優先順位によって意図しない結果になることがあるため、複雑な条件を扱う場合は括弧( )を使って優先順位を明示的に指定することをおすすめします。

  1. MySQLでAND・OR演算子を組み合わせた単一クエリを使って特定のレコードを取得する方法

    MySQLでは、AND演算子とOR演算子をWHERE句で組み合わせることで、複数の条件を指定しながら特定のレコードを1つのクエリで取得できます。本記事では、実際にテーブルを作成し、データを挿入して、AND・ORを組み合わせたクエリの動作を確認していきます。 1. テーブルの作成 まず、CREATE TABLE文でサンプル用のテーブルを作成します。 mysql> create table DemoTable2015 -> ( -> StudentId int, -> StudentName varchar(20), -> Stude

  2. MySQLデータベースの作成と使い方を徹底解説!初心者向け基本ステップ

    MySQLデータベース操作の基本ステップMySQLのインストールが完了し、SQL文の入力方法を理解したら、いよいよデータベースへアクセスできるようになります。ここでは、データベース内のテーブルからデータを取得するまでの一連の手順を順番に見ていきましょう。サーバーへの接続データベースの作成テーブルの作成テーブルへのデータ投入テーブルからのデータ取得既存のデータベースを確認する新しいデータベースを作成する前に、まず環境にすでに存在するデータベースを把握しておくことが重要です。以下のクエリを実行することで、現在利用可能なデータベースの一覧を確認できます。クエリmysql> SHOW DATAB