データを取得する条件を設定する(WHERE句)

MySQL では SELECT 文でデータを取得するときに WHERE 句を使用することで取得するデータの条件を設定することができます。ここでは MySQL で WHERE 句を使ってデータ取得の時の条件を設定する方法について解説します。

(Last modified: )

データを取得する条件を設定する

WHERE 句を使用すると SELECT 文を使ってデータを取得する時に、取得するデータの条件を設定することができます。書式は次の通りです。

SELECT col_name1 [, col_name2 ...] FROM table_name
  WHERE where_condition

WHERE 句が記述されている場合、データを 1 件取得しようとするたびに条件式( where_condition )を評価して、結果が TRUE となった場合にデータを取得します。条件式にはカラム名と演算子や関数などを記述することができます。

使い方は次のとおりです。

[例] branch カラムの値が 'Tokyo' のデータを取得
SELECT * FROM uriage WHERE branch='Tokyo';

[例] address カラムの値が 'Osaka' で且つ old カラムの値が 20 以上のデータを取得
SELECT * FROM personal WHERE address='Osaka' AND old>=20;

なお AS 句を使って別名として付けられたカラム名は WHERE 句の中では使用できませんので注意して下さい。( AS 句については「カラムに別名を付ける(AS句)」を参照されてください)。

-- --

それでは実際に試してみます。次のようなテーブルを作成しました。

create table friends (name varchar(10), old int, address varchar(10));

データを取得する条件を設定する(1)

テーブルには次のようなデータを追加しておきます。

insert into friends values ('Yamada', 34, 'Tokyo');
insert into friends values ('Suzuki', 26, 'Tokyo');
insert into friends values ('Mori', 22, 'Osaka');
insert into friends values ('Kudou', 30, 'Tokyo');
insert into friends values ('Sasaki', 28, 'Osaka');

データを取得する条件を設定する(2)

最初に WHERE 句を指定せずにデータを取得します。この場合すべてのデータを取得します。

select * from friends;

データを取得する条件を設定する(3)

それでは WHERE 句を使って条件を設定します。最初は address カラムの値が 'Tokyo' のデータを取得します。

select * from friends where address='Tokyo';

データを取得する条件を設定する(4)

次に old カラムの値が 30 より小さいデータを取得します。

select * from friends where old<30;

データを取得する条件を設定する(5)

最後に address カラムの値が 'Tokyo' で且つ old カラムの値が 30 以上のデータを取得します。

select * from friends where address='Tokyo' and old>=30;

データを取得する条件を設定する(6)

このように WHERE 句で指定した条件が TRUE となるデータだけを取得することができました。

-- --

WHERE 句を使って SELECT 文でデータを取得する時の条件を設定する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。