カテゴリ: MySQL 更新日: 2026/01/11

MySQLのWHERE句とAND・OR条件検索を完全解説|初心者でもわかるSQL入門

MySQLのWHERE句でAND・ORを使う方法
MySQLのWHERE句でAND・ORを使う方法

先生と生徒の会話形式で理解しよう

生徒

「MySQLでデータを探すときに、条件をつけられるって聞いたんですけど、どういう意味ですか?」

先生

「条件というのは、名簿の中から『この条件に当てはまる人だけ』を選ぶことです。WHERE句を使うと、それができます。」

生徒

「さらにANDとかORって出てきて、急に難しくなりました…」

先生

「ANDとORは、日本語でいう『かつ』『または』と同じです。普段の会話と同じ考え方なので、順番に見ていけば大丈夫ですよ。」

1. MySQLとWHERE句の基本をやさしく理解しよう

1. MySQLとWHERE句の基本をやさしく理解しよう
1. MySQLとWHERE句の基本をやさしく理解しよう

MySQL(マイエスキューエル)は、データベースを操作するためのソフトです。 データベースとは、たくさんの情報を表の形で整理して保存する場所のことです。 紙の会員名簿や学校の出席表を、パソコンの中で管理しているイメージをすると分かりやすいです。

WHERE句(ウェアく)は、その表の中から「条件に合う行だけを選ぶ」ための命令です。 例えば「20歳以上の人だけ」「名前が山田の人だけ」といった探し方ができます。

2. サンプルとなるテーブルを確認しよう

2. サンプルとなるテーブルを確認しよう
2. サンプルとなるテーブルを確認しよう

ここでは、users(ユーザー)というテーブルを使って説明します。 このテーブルは、会員名簿のようなものです。


id | name       | age | email
---+------------+-----+-----------------------
1  | 山田太郎   | 25  | taro@example.com
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 高橋美咲   | 22  | misaki@example.com
5  | 田中健一   | 18  | ken@example.com

3. WHERE句で1つの条件を指定する方法

3. WHERE句で1つの条件を指定する方法
3. WHERE句で1つの条件を指定する方法

まずは基本として、WHERE句で1つだけ条件を指定する書き方を見てみましょう。 「20歳以上の人を探したい」という場合は、次のように書きます。


SELECT *
FROM users
WHERE age >= 20;

このSQLの意味を日本語にすると、「usersという表から、年齢が20以上の行を全部表示してください」となります。


id | name       | age | email
---+------------+-----+-----------------------
1  | 山田太郎   | 25  | taro@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
4  | 高橋美咲   | 22  | misaki@example.com

4. ANDを使った複数条件検索の考え方

4. ANDを使った複数条件検索の考え方
4. ANDを使った複数条件検索の考え方

AND(アンド)は、日本語でいう「〜かつ」という意味です。 「20歳以上で、名前が山田の人」というように、条件を両方満たす場合に使います。

日常生活で例えると、「身長が170cm以上で、眼鏡をかけている人」と探すイメージです。 両方に当てはまらないと選ばれません。


SELECT *
FROM users
WHERE age >= 20
AND name = '山田太郎';

id | name       | age | email
---+------------+-----+-----------------------
1  | 山田太郎   | 25  | taro@example.com

5. ORを使った条件検索の基本

5. ORを使った条件検索の基本
5. ORを使った条件検索の基本

OR(オア)は、日本語でいう「〜または」という意味です。 どちらか一方の条件に当てはまれば、結果に表示されます。

「10代または30歳の人」を探すような場合に使います。 どちらかに当てはまれば良いので、ANDより結果が多くなりやすいです。


SELECT *
FROM users
WHERE age < 20
OR age >= 30;

id | name       | age | email
---+------------+-----+-----------------------
2  | 佐藤花子   | 19  | hanako@example.com
3  | 鈴木一郎   | 30  | ichiro@example.com
5  | 田中健一   | 18  | ken@example.com

6. ANDとORを使うときの注意点

6. ANDとORを使うときの注意点
6. ANDとORを使うときの注意点

ANDとORを一緒に使うときは、条件の順番に注意が必要です。 パソコンは上から順に機械的に判断するため、人の感覚とズレることがあります。

そのため、かっこ()を使って「どこからどこまでを一つの条件にするか」をはっきり書くことが大切です。 これは算数の計算で、先に計算する部分をかっこで囲むのと同じ考え方です。


SELECT *
FROM users
WHERE (age < 20 OR age >= 30)
AND name != '佐藤花子';

id | name       | age | email
---+------------+-----+-----------------------
3  | 鈴木一郎   | 30  | ichiro@example.com
5  | 田中健一   | 18  | ken@example.com
カテゴリの一覧へ
新着記事
New1
MySQL
MySQLのWHERE句でNOT条件を指定する方法を徹底解説!初心者向けSQL条件検索ガイド
New2
PostgreSQL
PostgreSQLのLIMIT・OFFSETとパフォーマンス問題を完全解説|初心者でもわかる安全な使い方
New3
MySQL
MySQLのUPDATE文でデータを更新する基本を徹底解説|SQL初心者でもわかるデータベース更新入門
New4
PostgreSQL
PostgreSQLのOFFSET完全入門|並び替えと組み合わせてデータをスキップする方法を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
PostgreSQL
PostgreSQLのDISTINCT完全ガイド|SQLで重複データを除外する方法を初心者向けに解説
No.2
Java&Spring記事人気No2
PostgreSQL
PostgreSQLの主キー・外部キーを完全解説!初心者でもわかる設定方法と考え方
No.3
Java&Spring記事人気No3
PostgreSQL
PostgreSQLとは?初心者向けに特徴をわかりやすく解説
No.4
Java&Spring記事人気No4
PostgreSQL
PostgreSQLのLEFT JOIN完全入門!不足データを補いながらテーブル結合する仕組みをやさしく解説
No.5
Java&Spring記事人気No5
PostgreSQL
PostgreSQLのUPDATE文の使い方(部分更新・条件更新)
No.6
Java&Spring記事人気No6
PostgreSQL
PostgreSQLスキーマ設計のベストプラクティス完全ガイド|初心者でもわかるデータベース整理術
No.7
Java&Spring記事人気No7
PostgreSQL
PostgreSQLスキーマ作成・削除完全ガイド!初心者でもわかるデータベース設計の基礎
No.8
Java&Spring記事人気No8
PostgreSQL
PostgreSQLの権限管理を完全解説|スキーマ単位で理解するデータベースセキュリティの基礎