見出し画像

【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いただけますと幸いです!

いいなと思ったら応援しよう!