ここではMySQLでの条件付のデータの表示ついて解説していきます。
tb1
id | name | age |
1 | 田中 | 27 |
2 | 山田 | 28 |
3 | 佐藤 | 29 |
4 | NULL | 30 |
今回はこのテーブルを例として解説していきます。
比較演算子を使った抽出
SELECT * FROM tb1 WHERE id < 2;
実行結果
id | name | age |
1 | 田中 | 27 |
書式
SELECT カラム名 FROM テーブル名 WHERE 条件式;
「ELECT * FROM テーブル名」の後に「WHERE」をつけることで条件を使ったデータの抽出ができるようになります。
比較演算子まとめ
= | 等しい |
> | より大きい |
>= | 以上 |
< | より小さい |
<= | 以下 |
<> | 等しくない |
!= | 等しくない |
AND比較演算子を使った抽出
SELECT * FROM tb1 WHERE id < 3 AND id > 1;
実行結果
id | name | age |
2 | 山田 | 28 |
「WHERE」句の条件を「AND」でつなげると左の条件式と右の条件式に当てはまる物のみ抽出されます。
OR比較演算子を使った抽出
SELECT * FROM tb1 WHERE id = 3 OR name = '田中';
実行結果
id | name | age |
1 | 田中 | 27 |
3 | 佐藤 | 29 |
「WHERE」句の条件を「OR」でつなげると左の条件式と右の条件式に当てはまる物のみ抽出されます。
「AND」と「OR」を両方使う場合、「AND」を優先して比較します。
なので優先的に比較したいものは「()」括弧で囲み定義してください。
IN比較演算子を使った抽出
SELECT * FROM tb1 WHERE id IN (1, 3);
実行結果
id | name | age |
1 | 田中 | 27 |
3 | 佐藤 | 29 |
書式
SELECT カラム名 FROM テーブル名 WHERE カラム名 IN (データ1, データ2, ・・・);
「IN」演算子を使う場合カラム名を指定して括弧内に当てはまるデータを「,」で区切り記述します。
「NOT IN ();」とすることで括弧内にないデータを抽出することもできます。
BETWEEN比較演算子を使った抽出
SELECT * FROM tb1 WHERE id BETWEEN 1 AND 2;
実行結果
id | name | age |
1 | 田中 | 27 |
2 | 山田 | 28 |
書式
SELECT カラム名 FROM テーブル名 WHERE カラム名 BETWEEN 数値1 AND 数値2;
「BETWEEN」演算子を使う場合カラム名を指定して「AND」で数値の幅を指定します。
数値1以上、数値2以下のデータを抽出することができます。
「NOT BETWEEN」を使用すると数値1未満、数値2を超えるものが抽出されます。
NULLを使った条件
SELECT * FROM tb1 WHERE name IS NULL;
実行結果
id | name | age |
4 | NULL | 30 |
書式
SELECT カラム名 FROM テーブル名 WHERE カラム名 IS NULL;
データが「NULL」のものを抽出する場合「IS NULL」を使用します。
逆に「NULL」以外のものを抽出する場合「IS NOT NULL」を使用します。