
【SQL】where句応用(where like / where in) の使い方を例文を用いて解説(練習問題あり)
where like句を用いることで、部分一致の文字列検索ができるようになります。 また、where in を用いると複数の完全一致検索ができ、 or 条件のように、in内で指定したものに1つでも当てはまる場合、結果を返すことができます。 そんなwhere like / where in句を初心者でも理解しやすいよう、例題を用いて、徹底解説していきます。
where like / where in 句の基本構文
where like / where in 句は以下の構文を使うことで条件指定できる。
where
カラム like '%条件%'
「%xx%」でxxを含んだ前後の文字列を検索できる。
また、「xx%」でxxを含んだ後の文字列を検索することができるのだ。
次にwhere in の基本構文は以下。
where
カラム in ( 条件1 , 条件2 , … , 条件n )
where in では、or 条件のように、条件に一つでも当てはまった場合に、結果を返すことができる。

上の「3年1組進学先」から、「大阪府の学校に進んだ生徒のidと名前、大学名」を抽出したい場合、
SELECT
* (アスタリスク「*」で全カラムを抜き出すことができる)
FROM
3年1組進学先
where
進学先 like '大阪府%'
とクエリーを書くことで、データを抽出できる。
結果は以下のように返ってくる。

また、「田中・橋本・小林・高橋の進学先」を知りたい場合、
SELECT
名前,
進学先
FROM
3年1組進学先
where
名前 in ' "田中" , "橋本" , "小林" , "高橋" '
と書くことで、彼らに絞ったデータが抽出される。
where like / where in句の練習問題
練習問題を通じて、実践的にwhere句の用法を理解していく。

練習問題 : 「『生徒idが3より後でかつ、専門学校に進学した生徒』を抜き出しなさい」
where条件を複雑に用いた分析を練習問題にした。
回答は以下である。
SELECT
*
FROM
3年1組進学先
where
id > 3
and
進学先 like '%専門学校'
結果は以下のように抽出される。

進学先 like '%専門学校'と書くことで、最後に「専門学校」を含む文字列を検索することができた。
WHERE like / where in 句でよくあるエラーと解消法
WHERE like / where in 句でよく起こるエラーと、その解消法を解説していく。
ワイルドカード「%」を入れ忘れるケース
like 句内で、'条件'だけを指定し、条件の前後に%を入れ忘れるケースが多発している。
like 句は部分一致検索に用いる関数のため、%を入れることでエラーが解消されるだろう。
最後に自己紹介
はじめまして、ニューズピックス(https://newspicks.com/)でマーケターをしている平野佑樹です。
普段は、JobPicksというジョブ型キャリアを支援するWebサービス(https://job.newspicks.com/)を運営しており、
SQLやGoogle Analyticsを用いた分析
TwitterをはじめとしたSNS運用(ショート動画にも挑戦予定)
メールマガジン運用
Google Optimizeなどを用いたA/Bテスト
Search Consoleを用いてコンテンツSEOや開発に関わるSEO施策
など、幅広く業務を担当しています。
マーケターの業務を後押しするtipsをnoteにて発信しております。
(ぜひ、いいねや拡散お願いいたします🙇)
ぜひ、フォローや興味持っていただいた方は、(https://twitter.com/enterrocken)にDMいただけますと幸いです!