MySQLでAND条件を正しく使う方法を実例付きで解説
MySQLにおけるAND条件の基本構文
MySQLで複数の条件をすべて満たすレコードを抽出したい場合は、WHERE句と組み合わせてAND演算子を使用します。AND条件の基本的な構文は以下の通りです。
select *from yourTableName where yourColumnName1 = yourValue1 AND yourColumnName2 = yourValue2;
この構文では、指定した両方の条件に一致するレコードのみが取得されます。それでは、実際にテーブルを作成しながらAND条件の使い方を見ていきましょう。
サンプルテーブルの作成
まず、以下のクエリでテーブルを作成します。
mysql> create table MySQLANDConditionDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> Name varchar(100),
-> Age int
-> );
Query OK, 0 rows affected (0.80 sec)このテーブルは、自動採番される「Id」、名前を格納する「Name」、年齢を格納する「Age」の3つのカラムで構成されています。
テストデータの挿入
次に、INSERT文を使っていくつかのレコードを登録します。
mysql> insert into MySQLANDConditionDemo(Name,Age) values('Larry',23);
Query OK, 1 row affected (0.11 sec)
mysql> insert into MySQLANDConditionDemo(Name,Age) values('Mike',21);
Query OK, 1 row affected (0.17 sec)
mysql> insert into MySQLANDConditionDemo(Name,Age) values('Sam',24);
Query OK, 1 row affected (0.17 sec)
mysql> insert into MySQLANDConditionDemo(Name,Age) values('David',26);
Query OK, 1 row affected (0.17 sec)
mysql> insert into MySQLANDConditionDemo(Name,Age) values('Carol',27);
Query OK, 1 row affected (0.11 sec)
mysql> insert into MySQLANDConditionDemo(Name,Age) values('Bob',28);
Query OK, 1 row affected (0.19 sec)登録済みレコードの確認
SELECT文ですべてのレコードを表示して、データが正しく登録されているか確認しましょう。
mysql> select *from MySQLANDConditionDemo;
実行結果は以下の通りです。
+----+-------+------+ | Id | Name | Age | +----+-------+------+ | 1 | Larry | 23 | | 2 | Mike | 21 | | 3 | Sam | 24 | | 4 | David | 26 | | 5 | Carol | 27 | | 6 | Bob | 28 | +----+-------+------+ 6 rows in set (0.00 sec)
AND条件を使った抽出クエリの実行
それでは、実際にAND条件を使用したクエリを実行してみます。ここでは、「Nameが'Mike'かつAgeが21」という2つの条件を両方満たすレコードを抽出します。
mysql> select *from MySQLANDConditionDemo where Name ='Mike' AND Age =21;
実行結果は以下の通りです。
+----+------+------+ | Id | Name | Age | +----+------+------+ | 2 | Mike | 21 | +----+------+------+ 1 row in set (0.00 sec)
まとめ
このように、AND演算子を使えば複数の条件を連結でき、そのすべての条件を満たすレコードだけを抽出できます。もし一つでも条件に一致しないレコードは結果から除外されるため、絞り込み検索を行いたい場面で非常に便利です。なお、いずれか一方の条件だけを満たせばよい場合は、OR演算子を使用してください。
-
MySQLの単一クエリでSELECT LIKEとCHAR_LENGTH()を組み合わせて使う方法
はじめにMySQLでは、LIKE句による部分一致検索と、CHAR_LENGTH()関数による文字数の条件指定を、1つのクエリ内で同時に組み合わせることができます。これにより、「特定の文字列を含み、かつ文字数が一定以下であるレコードだけを抽出する」といった柔軟なデータの絞り込みが可能になります。本記事では、実際にテーブルを作成し、データを挿入しながら、その具体的な手順を解説します。サンプルテーブルの作成まず、テーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(20) -> );Que
-
MySQLで重複するタプルを検出してカウントを表示する方法
MySQLで重複するタプル(同じ値の組み合わせを持つ行)を検出し、その出現回数を表示するには、GROUP BY句とHAVING句を組み合わせて使用します。この記事では、テーブルの作成から重複検出クエリの実行まで、手順を追って解説します。 サンプルテーブルの作成 まず、デモ用のテーブルを作成します。 mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.80 sec) テストデータの挿入