prev | next |
5-5.その他の演算子
-
BETWEEN演算子
論理演算子で同様の処理は行えますが、英語の方がスマートな感じがします。英語が50点以上90点以下のデータを取得
SELECT * FROM tbl_exam WHERE eng BETWEEN 50 AND 90;
+-------+------+------+------+ | id | eng | math | memo | +-------+------+------+------+ | 00001 | 85 | 85 | なし | | 00004 | 90 | 55 | なし | +-------+------+------+------+
-
IS NULL演算子
英語、数学で試験を受けていない者のデータを取得します。
現在登録しているデータで英語、数学が未記載の生徒がいないのでデータを作成します。INSERT INTO tbl_exam( id, eng, math ) VALUES( '00006', '55', NULL ),( '00007', NULL, '55' );
挿入したデータを確認します。
SELECT * FROM tbl_exam;
+-------+------+------+------------+ | id | eng | math | memo | +-------+------+------+------------+ | 00001 | 85 | 85 | なし | | 00002 | 0 | 95 | 名前未記載 | | 00004 | 90 | 55 | なし | | 00006 | 55 | NULL | なし | | 00007 | NULL | 55 | なし | +-------+------+------+------------+
NULLのデータを取得します。
SELECT * FROM tbl_exam WHERE eng IS NULL OR math IS NULL;
+-------+------+------+------+ | id | eng | math | memo | +-------+------+------+------+ | 00006 | 55 | NULL | なし | | 00007 | NULL | 55 | なし | +-------+------+------+------+
-
IN演算子
IDが'00001'と'00002'のデータを取得した場合
SELECT * FROM tbl_exam WHERE id='00001' OR id='00002'; としても良いのですが、取得したいIDが増えた場合に手間がかかるので、そういった場合にIN 演算子を使用します。SELECT * FROM tbl_exam WHERE id IN ('00001', '00002');
+-------+------+------+------------+ | id | eng | math | memo | +-------+------+------+------------+ | 00001 | 85 | 85 | なし | | 00002 | 0 | 95 | 名前未記載 | +-------+------+------+------------+
prev | next |