とあるITエンジニアたちの備忘録

新米エンジニア5人がお送りする、ちょっとためになる話

WHERE句の条件式 ~比較演算子~ #2

 

みなさん、こんにちは。

どうも、さいばーきゃっとです。

 

今回は、前回解説した比較演算子の続きになります。

 

前回の記事

itsoldier0901.hatenablog.com

 

比較演算子

前回は、SQL特有の演算子である、「BETWEEN...AND...」、「IN(値リスト)」を、解説しました。

 

今回は、ほかのSQL特有の演算子である「LIKE」演算子について、解説していきます。

 

演算子早見表

f:id:cloudy0901:20160701001811p:plain

 

LIKE パターン

この「LIKE」演算子を使用すると、指定した文字のパターンに一致する行を選択することできます。

 

例えば、下記の「成績表」で「氏名」の最後が「郎」で終わる生徒を選択する場合に、この「LIKE」演算子を使用します。

f:id:cloudy0901:20160628011305p:plain

 

・)まずは、「LIKE」演算子の基本的な指定方法を確認しましょう。

f:id:cloudy0901:20160628012214p:plain

これが、「LIKE」演算子を使用するときの指定方法です。

 

ポイントは、文字パターンをシングルコーテーション(’)で、囲むことです。

もしダブルコーテーション(")で、文字パターンを指定した場合、エラーになるので注意してください。

f:id:cloudy0901:20160628013208p:plain

 

基本的な概念も学んだことですし、「氏名」の最後が「郎」で終わる生徒を選択する方法を紹介したいところですが、

その前にワイルドカードについて、学ばなければ、「氏名」の最後が「郎」で終わる生徒を指定することができません。

 

ですので、ワイルドカードについて、説明していきます。

 

ワイルドカード

ワイルドカードは、「任意の文字」と一致する特殊な文字を含む文字パターンを指定するときに使用します。

 

ちょっとよくわかりませんよね?

 

まずは、ワイルドカードの種類を確認しましょう。

f:id:cloudy0901:20160628014319p:plain

 

ワイルドカードは、「%」と「_」の2種類しかありません。

上記の表で、簡潔にそれぞれのワイルドカードについて説明しましたが、言葉では理解しきれない部分もありますので、実際にワイルドカードを使用してみましょう。

 

ワイルドカード「%」

下記の指定方法を確認ください

f:id:cloudy0901:20160628014946p:plain

この指定方法の意味は、「氏名」の列から、「本」という文字が含まれている文字列を選択するということになります。

 

では、次です。

f:id:cloudy0901:20160628015201p:plain

この指定方法の意味は、「氏名」の列から、最後の文字が「子」である文字列を選択するということになります。

 

ワイルドカード「_」

下記の指定方法を確認ください

f:id:cloudy0901:20160628015440p:plain

この指定方法の意味は、「氏名」の列から、4つの文字列で、かつ最後の文字が「子」である文字列を選択するということになります。

 

まとめ

では、下記の「成績表」で「氏名」の最後が「郎」で終わる生徒を選択しましょう。

f:id:cloudy0901:20160628011305p:plain

 

指定方法は以下になります。

f:id:cloudy0901:20160628015814p:plain

 

ちなみに、「_」を使用した指定方法だと以下になります。

f:id:cloudy0901:20160628020021p:plain

 

しかしこれでは、氏名」が4文字で、かつ最後が「郎」で終わる生徒を選択するという意味になりますので、

 

例えば、「氏名」が「森太郎」だと、「氏名」の文字が3つなので、上記の指定方法では、選択されません。

 

「_」は、文字数を制限したい時に、使用することを覚えておきましょう。

 

いかがでしたでしょうか。

 

データベースでは、さまざまな文字列でデータは格納されていますので、どんな文字パターンでも選択できるように、「LIKE」演算子は覚えておきましょう。