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

MySQLで複数のAND条件を組み合わせて使う方法を徹底解説

MySQLでは、WHERE句の中でAND演算子を複数組み合わせることで、すべての条件を満たすレコードだけを抽出できます。ANDで連結された条件はすべて真(TRUE)である必要があり、一つでも満たさない行は結果から除外されます。

基本構文

MySQLで複数のAND条件を使用する場合の基本的な構文は以下の通りです。

select *from yourTableName where yourColumnName1=yourValue1 and yourColumnName2=yourValue2 and yourColumnName3=yourValue3;

それでは、実際にサンプルテーブルを作成して動作を確認してみましょう。

1. テーブルの作成

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

mysql> create table DemoTable
    (
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName varchar(20),
    StudentAge int,
    StudentCountryName varchar(40)
    );
Query OK, 0 rows affected (0.59 sec)

2. レコードの挿入

次に、INSERT文を使ってテーブルにデータを登録します。

mysql> insert into DemoTable(StudentName,StudentAge,StudentCountryName) values('John',23,'US');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(StudentName,StudentAge,StudentCountryName) values('Carol',21,'UK');
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable(StudentName,StudentAge,StudentCountryName) values('John',21,'US');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(StudentName,StudentAge,StudentCountryName) values('John',21,'AUS');
Query OK, 1 row affected (0.14 sec)

3. 登録データの確認

SELECT文ですべてのレコードを表示してみましょう。

mysql> select *from DemoTable;

出力結果

+-----------+-------------+------------+--------------------+
| StudentId | StudentName | StudentAge | StudentCountryName |
+-----------+-------------+------------+--------------------+
| 1         | John        | 23         | US                 |
| 2         | Carol       | 21         | UK                 |
| 3         | John        | 21         | US                 |
| 4         | John        | 21         | AUS                |
+-----------+-------------+------------+--------------------+
4 rows in set (0.00 sec)

4. 複数のAND条件を使った検索クエリ

ここで、「名前がJohn」「年齢が21歳」「国がAUS」という3つの条件をすべて満たすレコードを抽出するクエリを実行します。

mysql> select *from DemoTable where StudentName="John" and StudentAge=21 and StudentCountryName="AUS";

出力結果

+-----------+-------------+------------+--------------------+
| StudentId | StudentName | StudentAge | StudentCountryName |
+-----------+-------------+------------+--------------------+
| 4         | John        | 21         | AUS                |
+-----------+-------------+------------+--------------------+
1 row in set (0.00 sec)

まとめ

このように、WHERE句にANDを繋げて記述することで、複数の条件をすべて満たすレコードのみを正確に絞り込むことができます。上記の例では、4件のレコードのうち「John・21歳・AUS」の3条件をすべて満たすStudentId=4の1件だけが返されました。条件を追加したい場合は、同様にand 条件式を続けて記述するだけで対応できます。

  1. MySQLで複数のSELECTクエリを一度に実行する方法【DELIMITER活用】

    MySQLで複数のSELECTクエリを一度に実行するには、DELIMITERの概念を利用します。この記事では、実際にテーブルを作成しながら、複数のSELECT文をまとめて実行する手順をわかりやすく解説します。 準備:サンプルテーブルの作成 まず、1つ目のテーブルを作成します。 mysql> create table DemoTable1 ( Title text )ENGINE=MyISAM; Query OK, 0 rows affected (0.30 sec) 次に、INSERTコマンドを使ってテーブルにレコードを挿入します。 mysql> insert into D

  2. MySQLで0を末尾に回して並べ替える!条件付きSELECTとORDER BYの使い方

    MySQLでは、ORDER BY句に「カラム名=0」という条件式を組み合わせることで、0以外の値を昇順に並べたうえで、0のレコードだけを末尾にまとめて表示できます。この記事では、その具体的な書き方と実行例を分かりやすく解説します。基本構文select * from yourTableName order by yourColumnName=0, yourColumnName;この構文のポイントは、yourColumnName=0 がブール値として評価される点です。値が0であれば「1(真)」、0以外であれば「0(偽)」となるため、昇順ソートでは0以外の値の行が先に並び、その後ろに0の行が配置され