MySQLでデータを取得する際に同じ列へ複数の条件を指定する方法
MySQLでデータを取得する際、「同じ列に対して複数の条件」を満たすレコードだけを抽出したいケースはよくあります。例えば、学生テーブルから「名前がGauravまたはAaravであるレコード」を取得したい場合などです。このような場合に利用できる主な方法として、以下の2つがあります。
論理演算子「OR」を使う方法
MySQLのOR演算子は、2つの式を比較し、どちらか一方でもTRUEであればTRUEを返します。OR演算子を使えば、同じ列に対する複数の条件を1つのWHERE句で組み合わせることができます。
次の例では、Studentテーブルから「Name列が'Gaurav'または'Aarav'」に一致するレコードを取得しています。
mysql> Select * from Student WHERE Name = 'Gaurav' OR Name = 'Aarav';
+------+--------+---------+-----------+
| Id | Name | Address | Subject |
+------+--------+---------+-----------+
| 1 | Gaurav | Delhi | Computers |
| 2 | Aarav | Mumbai | History |
+------+--------+---------+-----------+
2 rows in set (0.00 sec)
OR演算子のポイント
OR演算子は直感的で分かりやすい反面、条件が多くなるとクエリが長くなり、可読性が下がるというデメリットがあります。条件数が多い場合は、次に紹介するIN句の方が便利です。
WHERE IN(...)句を使う方法
WHERE IN(...)句も、同じ列に対する複数の条件を指定するために利用できます。IN句の括弧内に候補となる値をカンマ区切りで並べるだけで、いずれかに一致するレコードをまとめて取得できます。
mysql> Select * from Student WHERE Name IN ('Gaurav','Aarav');
+------+--------+---------+-----------+
| Id | Name | Address | Subject |
+------+--------+---------+-----------+
| 1 | Gaurav | Delhi | Computers |
| 2 | Aarav | Mumbai | History |
+------+--------+---------+-----------+
2 rows in set (0.00 sec)IN句のメリット
IN句を使うと、条件が増えても値を追加するだけで済むため、クエリが簡潔になり保守性も向上します。また、多くの場合、複数のORを連ねたクエリよりも処理効率が良い傾向があるため、実務ではIN句の使用が推奨されることが多いです。
まとめ
同じ列に複数の条件を指定してレコードを取得したい場合は、「OR演算子」と「WHERE IN(...)句」のいずれかを使います。条件が少数ならOR演算子、条件が多い場合や将来的に条件を追加する可能性がある場合はIN句が適しています。状況に応じて使い分けることで、より読みやすく効率的なSQLを書くことができます。
-
MySQLで複数のデータを一度に挿入する方法を解説
MySQLでは、INSERT文を複数回実行しなくても、1つのINSERT文で複数行のデータを同時にテーブルへ挿入できます。この方法を使うと、コードが簡潔になるだけでなく、データベースとの通信回数が減るため、大量のデータを挿入する際のパフォーマンス向上にもつながります。 複数行を挿入するための基本構文 複数のレコードを一度に挿入するには、VALUES句の後に値のセットをカンマで区切って並べます。構文は以下のとおりです。 INSERT INTO テーブル名 VALUES(値1, 値2, .....N), (値1, 値2, .....N), (値1, 値2, .....N), (値1, 値2, ..
-
複数のGmailアカウントを同時に使用する3つの方法を徹底解説
学校や仕事の用途、あるいはメインのメールアドレスが少し恥ずかしいものであるといった理由で、ほとんどの人が人生のどこかのタイミングで複数のメールアカウントを持つことになります。追加のメールアカウントも、メインのアドレスと同じように確認・管理・活用していく必要があります。2つのアカウントが異なるメールサービスであれば特に問題はありませんが、両方ともGmailのように同じプロバイダーに登録されている場合はどうすればよいのでしょうか?他のメールサービスであれば、同時に使えるのは1つのアカウントだけと諦めるしかありません。しかし幸いなことに、Gmailには複数のアカウントを同時に利用する方法がいくつか用