PostgreSQLで文字列検索を行う際、大文字と小文字を区別せずにパターンマッチングを行いたい場合があります。この記事では、ILIKE演算子の使い方とその特徴について詳しく解説します。
ILIKEとは何か
ILIKEはPostgreSQLで提供される演算子で、LIKEと同じパターンマッチング機能を持ちながら、大文字と小文字を区別せずに比較を行うことができます。
基本構文は次の通りです。
SELECT * FROM テーブル名 WHERE カラム名 ILIKE ‘パターン’;
使用例
例えば、名前カラムに”Alice”や”ALICE”が含まれるレコードを検索したい場合、次のように記述します。
SELECT * FROM users WHERE name ILIKE ‘alice’;
このクエリは”Alice”、”ALICE”、”alice”など、大文字小文字の違いに関係なくマッチします。
ILIKEとLIKEの違い
LIKE演算子はデフォルトで大文字と小文字を区別します。例えば、SELECT * FROM users WHERE name LIKE ‘alice’;は小文字”alice”のみがマッチし、”Alice”や”ALICE”は除外されます。
そのため、ケースインセンシティブ検索が必要な場合はILIKEを使用するのが便利です。
ワイルドカードとの組み合わせ
ILIKEは%や_などのワイルドカードと組み合わせて使用できます。%は任意の文字列、_は任意の1文字を表します。
例えば、SELECT * FROM users WHERE name ILIKE ‘a%’;は、”Alice”や”alex”など、aで始まる全ての文字列にマッチします。
まとめ
PostgreSQLで大文字小文字を区別せずに検索したい場合、ILIKEを使用することで簡単にケースインセンシティブなパターンマッチングが可能です。LIKEとの違いを理解し、適切な場面で使い分けましょう。


コメント