SQLのORとは?複数条件を指定するORの使い方
SQLで条件Aまたは条件Bというように複数条件を指定してデータを抽出する場合はORを使用します。
本記事では、ORを使って複数条件を指定する方法について解説します。また、以下のユーザー(user)テーブルを使用します。
ID | name | age | group_id |
1 | User1 | 30 | 103 |
2 | User2 | 25 | 103 |
3 | User3 | 27 | 101 |
4 | User4 | 23 | 101 |
5 | User5 | 35 | 102 |
1.ORを用いて複数条件を指定する方法
それでは実際にORを用いて複数条件を指定する方法について見ていきましょう。
例として、ユーザー(user)テーブルから年齢(age)が30以上またはグループID(group_id)が103であるレコードを取得する場合は以下の通りとなります。
例)ユーザー(user)テーブルから年齢(age)が30以上またはグループID(group_id)が103であるレコードを取得する場合
SELECT * FROM user WHERE age >= 30 OR group_id = 103;
▽実行結果
ID | name | age | group_id |
1 | User1 | 30 | 103 |
2 | User2 | 25 | 103 |
5 | User5 | 35 | 102 |
このようにして、条件Aまたは条件Bどちらかの条件を満たすレコードを取得します。
SQLで複数条件を指定する方法は、OR以外にANDもあります。ただし、ORとANDそれぞれには違いがあります。
それでは次にORとANDの違いについて見ていきましょう。
2.ORとANDの違い
それでは続いては、ORとANDの違いについてです。
条件Aまたは条件Bどちらかの条件を満たすレコードを取得したい場合はORを使うことで取得することが出来ました。
では例えば、条件Aかつ条件Bどちらの条件も満たすレコードを取得したい場合はどうすればよいでしょうか?
この場合は、ANDを使うことで取得したいレコードを取得することが出来ます。
例として、ユーザー(user)テーブルから年齢(age)が30以上かつグループID(group_id)が103であるレコードを取得する場合は以下の通りとなります。
例)ユーザー(user)テーブルから年齢(age)が30以上かつグループID(group_id)が103であるレコードを取得する場合
SELECT * FROM user WHERE age >= 30 AND group_id = 103;
▽実行結果
ID | name | age | group id |
1 | User1 | 30 | 103 |
このようにして、条件Aかつ条件Bどちらの条件も満たすレコードを取得します。
以上がORとANDの違いについてです。実際にSQLでORやANDを用いて複数条件を指定する際は、これらの違いについて注意しながら使ってみてください。
3.まとめ
以上、SQLでORを用いて複数条件を指定する方法、また、ORとANDの違いについて解説してきました。
複数条件を指定してデータを取得する場合は是非参考にしてみてください。
コメント