PostgreSQLのlike演算子で_(アンダーバー)を検索する方法

PostgreSQLでは、「_(アンダーバー/アンダースコア)」をlike演算子と共に用いると、「任意の一文字列」を表すという正規表現の役割を果たしてしまうので、普通に「_」を指定しただけだと、「_」以外の文字列も検索してしまう。
そこで、like演算子で「_」を検索したい場合は、「_」の前に「\」(Windowsだと半角¥マーク、Linuxだとバックスラッシュ)を2つ付けて「_」をエスケープすればよい。

つまり、以下のようにする。
select * from テーブル名 where カラム名 like '%\\_%';

《例》
select * from nobuneko_table where nobuneko_column like '%\\_%';
(テーブル「nobuneko_table」のカラム「nobuneko_column」に「_」を含むレコードを検索する。)

前へ

Windows版Apacheのエラー「Unable to open logs」の原因の1つと解決方法

次へ

PHPエラー 「Warning: eregi() [function.eregi]: REG_EMPTY」の原因と解決方法