データを取得する条件を設定する(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));
テーブルには次のようなデータを追加しておきます。
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');
最初に WHERE 句を指定せずにデータを取得します。この場合すべてのデータを取得します。
select * from friends;
それでは WHERE 句を使って条件を設定します。最初は address カラムの値が 'Tokyo' のデータを取得します。
select * from friends where address='Tokyo';
次に old カラムの値が 30 より小さいデータを取得します。
select * from friends where old<30;
最後に address カラムの値が 'Tokyo' で且つ old カラムの値が 30 以上のデータを取得します。
select * from friends where address='Tokyo' and old>=30;
このように WHERE 句で指定した条件が TRUE となるデータだけを取得することができました。
-- --
WHERE 句を使って SELECT 文でデータを取得する時の条件を設定する方法について解説しました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。