OracleSQL入門-文字列をあいまい検索する「LIKE」の使用

OracleSQL入門トップに戻る

スポンサードリンク

文字列をあいまい検索する「LIKE」の使用

○○が含まれる文字列のデータを出力する・○○で始まる文字列のデータを出力するなど

完全な一致ではなく、あいまいに文字列を検索することを「あいまい検索」と言います。

例えば、名前が「田中」で始まる学生のデータを取得したいだとか、名前に「二」が含まれて

いる学生を取得したい場合に活用することができます。

このあいまい検索を行うにはLIKEを使用します。

LIKEの使用方法

LIKEの使用方法は以下の通りです。

SELECT 列名 FROM 表の名前 WHERE 列名 (NOT) LIKE ’検索文字列’;

LIKEの文字列検索にはワイルドカードと呼ばれるものを使い、検索文字列がどのように一致

しているかを指定します。

ワイルドカードは以下の2つです。

ワイルドカード 説明
% 0文字以上の任意の文字列を表す。
_ 1文字の任意の文字列を表す。

使用例1:氏名が「田中」で始まる学生情報を取得。

SELECT * FROM 学生 WHERE 氏名 LIKE '田中%';

OracleSQL-LIKEの使用方法1

使用例2:氏名が5文字の学生情報を取得。

SELECT * FROM 学生 WHERE 氏名 LIKE '_____';

OracleSQL-LIKEの使用方法2

ワイルドカードが含まれる文字列のあいまい検索

LIKEで検索文字列に「%」や「_」が含まれる場合は、エスケープ文字を使います。

SELECT 列名 FROM 表の名前
WHERE 列名 (NOT) LIKE ’検索文字列’ ESCAPE  ‘エスケープ文字’;

使用例:氏名の最後に「%」が付く学生を取得(ありえない氏名ですが…)

SELECT * FROM 学生 WHERE 氏名 LIKE '%#%' ESCAPE '#';

OracleSQL-LIKEの使用方法3

↑の例ではエスケープ文字に「#」を指定しています。

この「#」の後にワイルドカードを書くことで、ワイルドカードではなく1つの文字として

認識されます。

エスケープ文字には「#」以外にも好きな文字を使うことができます。

スポンサードリンク

シェアする

フォローする