SQLの不等号を使った条件指定についてまとめています。
MySQLのサンプルデータベースEmployeesを使用しています。
SQLの不等号での条件指定のサンプルコード
不等号での条件していは、where節に記述可能です。また、=(等号)での条件指定と、不等号での条件指定を混在されて、andやorで複数条件の指定も可能です。
【関連記事】
▶SQLで複数条件を指定するにはwhere節でandやorを使う inでの置き換えも可能
シンプルな不等号での条件指定のサンプルです。employees(社員)テーブルに対して、emp_no(社員番号)>100100の条件指定で10件のデータを取得しています。
mysql> select emp_no, birth_date, first_name, last_name from employees where emp_no > 100100 limit 10; +--------+------------+------------+------------+ | emp_no | birth_date | first_name | last_name | +--------+------------+------------+------------+ | 100101 | 1952-05-26 | Shakhar | Egerstedt | | 100102 | 1955-02-06 | Harngdar | Marciano | | 100103 | 1957-11-21 | Alois | Eugenio | | 100104 | 1963-10-30 | Sibyl | Lieberherr | | 100105 | 1954-12-30 | Tuval | Underwood | | 100106 | 1961-09-16 | Halsur | Shiratori | | 100107 | 1957-11-05 | Candida | Tiemann | | 100108 | 1952-03-12 | Kwangho | Underwood | | 100109 | 1961-12-08 | Aleksandar | Gargeya | | 100110 | 1954-05-12 | Martial | Seuren | +--------+------------+------------+------------+ 10 rows in set (0.04 sec)
不等号での条件指定は、日付に対しておこなうことも可能です。
以下の例では、employeesテーブルから、birth_date(誕生日)>1960-01-01という条件していでデータを取得してます。
mysql> select emp_no, birth_date, first_name, last_name from employees where birth_date > "1960-01-01" limit 10; +--------+------------+------------+-------------+ | emp_no | birth_date | first_name | last_name | +--------+------------+------------+-------------+ | 10002 | 1964-06-02 | Bezalel | Simmel | | 10010 | 1963-06-01 | Duangkaew | Piveteau | | 10012 | 1960-10-04 | Patricio | Bridgland | | 10013 | 1963-06-07 | Eberhardt | Terkki | | 10016 | 1961-05-02 | Kazuhito | Cappelletti | | 10021 | 1960-02-20 | Ramzi | Erde | | 10027 | 1962-07-10 | Divier | Reistad | | 10028 | 1963-11-26 | Domenick | Tempesti | | 10032 | 1960-08-09 | Jeong | Reistad | | 10034 | 1962-12-29 | Bader | Swan | +--------+------------+------------+-------------+
文字列に対して不等号で条件指定すると、辞書順に並べて出現順序を比較する指定になります。以下の例では、employeesテーブルにて、first_name(姓名の名)の1文字目がG以降のデータを抽出することになります。
“Guoxiang” > “G”となるため、first_nameがGuoxiangのデータは対象となります。
mysql> select emp_no, birth_date, first_name, last_name from employees where first_name > "G" limit 10; +--------+------------+------------+-------------+ | emp_no | birth_date | first_name | last_name | +--------+------------+------------+-------------+ | 10001 | 1953-09-02 | xGeorgi | Facello | | 10003 | 1959-12-03 | Parto | Bamford | | 10005 | 1955-01-21 | Kyoichi | Maliniak | | 10007 | 1957-05-23 | Tzvetan | Zielinski | | 10008 | 1958-02-19 | Saniya | Kalloufi | | 10009 | 1952-04-19 | Sumant | Peac | | 10011 | 1953-11-07 | Mary | Sluis | | 10012 | 1960-10-04 | Patricio | Bridgland | | 10015 | 1959-08-19 | Guoxiang | Nooteboom | | 10016 | 1961-05-02 | Kazuhito | Cappelletti | +--------+------------+------------+-------------+
まとめ
- where節に不等号で条件を記述することが可能
- 日付に対する不等号は、”(ダブルクォーテーション)で括って指定する
- 文字列に不等号を指定すると、辞書順に並べた出現順での指定になる