主にSQLのフィルタ機能Where句で使用する述語を紹介します。
LIKE述語
述語とは結果が真理値になる関数のことです。
LIKE述語の構文は以下のとおりです。
select 列名 from テーブル名 where 列名 LIKE パターン
LIKE述語は指定した列の値がLIKE述語のパターンと一致した時にTRUEを返します。
パターンは複数の条件を組み合わせることも可能。
パターン | 内容 |
---|---|
% | (0文字以上の)複数の文字 |
_ | 1つの文字 |
[a-z] | 範囲内の文字を1文字 |
![a-z] | 範囲外の文字を1文字 |
[0-9] | 数字を1文字 |
![0-9] | 数字以外を1文字 |
[ab] | [ ]内のいづれかの1文字 |
LIKE述語使用例
LIKE述語は列の値と条件が完全一致ではない、一部分が一致するデータも抽出することが出来ます。
検索条件はパターン文字と検索条件全てを「'(シングルクォーテーション)」で括ります。
パターン文字は同時に複数の種類を使用することが可能です。
完全一致
パターン文字を指定しない場合は完全一致になります。
指定した列の値に検索文字が含まれているだけでは一致しません。
下記例では「京」の文字が含まれている都道府県はありますが、「京」一文字の都道府県は存在しないため、全てFALSEとなりデータの抽出がされていません。
パターン文字を指定しない場合。
都道府県が「京都府」のデータのみTRUEとなる。
部分一致
「~が含まれている」というパターンは「%~%」と記載する
「%」というパターンはその場所に「0文字以上の何らかの文字が存在している」というパターンになります。
[ab]は「」内のいずれかの文字が該当すればTRUEを返す。