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

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を書くことができます。

  1. MySQLで複数のデータを一度に挿入する方法を解説

    MySQLでは、INSERT文を複数回実行しなくても、1つのINSERT文で複数行のデータを同時にテーブルへ挿入できます。この方法を使うと、コードが簡潔になるだけでなく、データベースとの通信回数が減るため、大量のデータを挿入する際のパフォーマンス向上にもつながります。 複数行を挿入するための基本構文 複数のレコードを一度に挿入するには、VALUES句の後に値のセットをカンマで区切って並べます。構文は以下のとおりです。 INSERT INTO テーブル名 VALUES(値1, 値2, .....N), (値1, 値2, .....N), (値1, 値2, .....N), (値1, 値2, ..

  2. 複数のGmailアカウントを同時に使用する3つの方法を徹底解説

    学校や仕事の用途、あるいはメインのメールアドレスが少し恥ずかしいものであるといった理由で、ほとんどの人が人生のどこかのタイミングで複数のメールアカウントを持つことになります。追加のメールアカウントも、メインのアドレスと同じように確認・管理・活用していく必要があります。2つのアカウントが異なるメールサービスであれば特に問題はありませんが、両方ともGmailのように同じプロバイダーに登録されている場合はどうすればよいのでしょうか?他のメールサービスであれば、同時に使えるのは1つのアカウントだけと諦めるしかありません。しかし幸いなことに、Gmailには複数のアカウントを同時に利用する方法がいくつか用