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

単一のMySQLクエリでWHERE、AND、ORを組み合わせて使用する方法

単一のMySQLクエリでWHERE、AND、ORを組み合わせることは可能

はい、WHERE句とAND・OR演算子は、すべて1つのクエリ内で組み合わせて使用できます。まず、サンプル用のテーブルを作成しましょう。

mysql> create table DemoTable
    (
    StudentId int,
    StudentFirstName varchar(20),
    StudentLastName varchar(20),
    StudentAge int
    );
Query OK, 0 rows affected (0.53 sec)

テーブルへのレコード挿入

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

mysql> insert into DemoTable values(100,'John','Smith',23);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values(101,'Carol','Taylor',24);
Query OK, 1 row affected (0.62 sec)
mysql> insert into DemoTable values(103,'John','Doe',22);
Query OK, 1 row affected (0.24 sec)
mysql> insert into DemoTable values(104,'Adam','Smith',23);
Query OK, 1 row affected (0.18 sec)

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

select文を使用して、テーブル内のすべてのレコードを表示します。

mysql> select *from DemoTable;

以下の出力が得られます。

+-----------+------------------+-----------------+------------+
| StudentId | StudentFirstName | StudentLastName | StudentAge |
+-----------+------------------+-----------------+------------+
| 100       | John             | Smith           | 23         |
| 101       | Carol            | Taylor          | 24         |
| 103       | John             | Doe             | 22         |
| 104       | Adam             | Smith           | 23         |
+-----------+------------------+-----------------+------------+
4 rows in set (0.00 sec)

WHERE、AND、ORを組み合わせたクエリの実行例

以下は、単一のMySQLクエリ内でWHERE句とAND・OR演算子を組み合わせてレコードを取得するクエリです。

mysql> select *from DemoTable
where StudentFirstName='John' AND StudentLastName='Doe' OR StudentAge=26;

このクエリを実行すると、以下の出力が得られます。

+-----------+------------------+-----------------+------------+
| StudentId | StudentFirstName | StudentLastName | StudentAge |
+-----------+------------------+-----------------+------------+
| 103       | John             | Doe             | 22         |
+-----------+------------------+-----------------+------------+
1 row in set (0.00 sec)

上記の例では、「名がJohnかつ姓がDoeである」または「年齢が26歳である」という条件に一致するレコードのみが取得されます。

なお、MySQLではAND演算子がOR演算子よりも高い優先順位を持つため、複雑な条件を記述する場合は括弧()を使って条件を明示的にグループ化することをおすすめします。これにより、意図した通りの検索結果を確実に得ることができます。

  1. MySQLクエリで「LIKE concat()」を使用することはできる?

    はい、MySQLではLIKE句とconcat()関数を組み合わせて使用することが可能です。concat()関数で動的にパターン文字列を生成し、それをLIKE句の検索条件として利用できます。実際にサンプルを使って手順を見ていきましょう。まず、テーブルを作成します。mysql> create table DemoTable ( Name varchar(50) ); Query OK, 0 rows affected (0.63 sec)次に、insertコマンドを使ってテーブルにレコードを挿入します。mysql> insert into DemoTable values(Jo

  2. 【MySQL】単一クエリでUNION SELECTとIN句を組み合わせる方法

    はじめにMySQLでは、UNION SELECTとIN句を単一のクエリ内で組み合わせることができます。これにより、複数のテーブルのデータを統合した上で、特定の条件に一致するレコードだけを効率的に抽出できます。本記事では、2つのテーブルを作成し、サブクエリとUNIONを活用して目的のデータを取得する手順を具体例とともに解説します。最初のテーブルを作成するまず、以下のコマンドでテーブル「DemoTable1」を作成します。mysql> create table DemoTable1 -> ( -> StudentId int, -> StudentN