Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQLの条件指定についてまとめてます。

SQLの条件指定はWHERE句に記述

SQLの条件指定は、WHERE句に記述します。省略した場合は、無条件でSQLを実行します。

WHERE句の構文

WHERE以下に、=(等号)、<>(不等号)、!=(一致しない)などの演算子や、andやor、notなどの論理演算子などを使って条件指定が可能です。

以下の例は、employees(社員)テーブルから、emp_no(社員番号)が10001のデータを取得するSQLです。

mysql> SELECT * FROM employees
WHERE emp_no = '10001';
+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
|  10001 | 1953-09-02 | Georgi     | Facello   | M      | 1986-06-26 |
+--------+------------+------------+-----------+--------+------------+

【関連記事】
SQL where句のサンプルコード集 ワイルドカードやサブクエリを使った複雑な条件指定

複数の検索条件を指定するには、and、or演算子を組み合わせる

複数の条件を指定するには、andやorなどの論理演算子を使って条件式を接続します。

以下の例は、employees(社員)テーブルから、first_name(名前)がGeorgiまたはMaryのデータを取得する条件を記述しています。

mysql> select emp_no, first_name, last_name from employees
where first_name='Georgi' or first_name='Mary';
--------+------------+-------------+
| emp_no | first_name | last_name   |
+--------+------------+-------------+
|  10001 | Georgi     | Facello     |
|  10011 | Mary       | Sluis       |
|  10532 | Mary       | Wossner     |
|  10909 | Georgi     | Atchley     |
|  11029 | Georgi     | Itzfeldt    |
|  11430 | Georgi     | Klassen     |
 :
 :

【関連記事】
SQLのor演算子は条件を論理和で接続 inや行コンストラクタで置換が可能 

andも同様に条件式を接続可能でs。

mysql> select * from employees where first_name = 'Georgi' and hire_date < '1986-06-26';
+--------+------------+------------+-------------+--------+------------+
| emp_no | birth_date | first_name | last_name   | gender | hire_date  |
+--------+------------+------------+-------------+--------+------------+
|  10909 | 1954-11-11 | Georgi     | Atchley     | M      | 1985-04-21 |
|  12157 | 1960-03-30 | Georgi     | Barinka     | M      | 1985-06-04 |
|  16672 | 1955-04-25 | Georgi     | Peris       | M      | 1986-03-13 |
|  38079 | 1964-12-05 | Georgi     | Constantine | M      | 1985-08-26 |
 :
 :

【関連記事】
SQL andのサンプルSQL 複数条件の記述例と、優先順位

複雑なand、or条件はinで置き換えるとシンプルになるケースがある

and、orを使った条件式はカッコも組み合わせて優先順位を指定しながら指定が可能です。しかし、条件が複雑になると直感的に理解しにくく、潜在的なバグの原因になったりするんですよね。

そんな場合は、inで置き換えることで可読性が高いコードに置き替えられるケースがあります。

下記の2つのクエリは、全く同じ条件を指定しています。

mysql> select * from employees
where first_name = 'Georgi' and last_name 'Peris' 
or first_name = 'Mary' and last_name 'Sluis';

+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
|  10011 | 1953-11-07 | Mary       | Sluis     | F      | 1990-01-22 |
|  16672 | 1955-04-25 | Georgi     | Peris     | M      | 1986-03-13 |
+--------+------------+------------+-----------+--------+------------+

mysql> select * from employees 
where (first_name, last_name) in (('Georgi','Peris'), ('Mary','Sluis'));
+--------+------------+------------+-----------+--------+------------+
| emp_no | birth_date | first_name | last_name | gender | hire_date  |
+--------+------------+------------+-----------+--------+------------+
|  10011 | 1953-11-07 | Mary       | Sluis     | F      | 1990-01-22 |
|  16672 | 1955-04-25 | Georgi     | Peris     | M      | 1986-03-13 |
+--------+------------+------------+-----------+--------+------------+

【関連記事】
SQLでandとorを使った条件をinで置き換えるサンプルコード 

まとめ

ポテパンダの一言メモ
  • SQLの条件は、WHERE句に記述する
  • WHERE句の条件は、andやor、notなどの論理演算子で接続し複数条件の記述ができる
  • 複雑なand、orの条件はinで置き替えて可読性を高められるケースあり

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。