あいまい検索(LIKE演算子)

書籍情報テーブル(books)から署名(title)列にSQLという文字が含まれている情報だけを取り出すには以下のSQLを発行する。
なお、取り出す列はtitle,publish,publish_date列とする。


SELECT
	title,
	publish,
	publish_date
FROM
	books
WHERE
	title LIKE '%SQL%'
;

%はワイルドカードと呼ばれるもので「0文字以上の文字列」を表す。
なので、’%SQL%’で、「’SQL’という文字の前後に0文字以上の文字列を含む文字列」–「’SQL’という文字列を含む文字列」という意味になる。

ワイルドカードには「任意の1文字」を表す「_」もある。

LIKE演算子では「%」や「_」のようなワイルドカードを含まない固定値を条件値として指定することも可能。その場合、=演算子を使った場合と同様、完全一致検索になる。
ただし、完全一致検索をLIKE演算子を使って行うのはまったく意味がないので、避けるようにすること。

※引用 「書き込み式SQLのドリル―ドンドン身に付く、スラスラ書ける」 山田祥寛著 ソシム

No comments yet.