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 条件式を続けて記述するだけで対応できます。
-
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
-
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の行が配置され