PostgreSQLのlike演算子で_(アンダーバー)を検索する方法
PostgreSQLでは、「_(アンダーバー/アンダースコア)」をlike演算子と共に用いると、「任意の一文字列」を表すという正規表現の役割を果たしてしまうので、普通に「_」を指定しただけだと、「_」以外の文字列も検索してしまう。
そこで、like演算子で「_」を検索したい場合は、「_」の前に「\」(Windowsだと半角¥マーク、Linuxだとバックスラッシュ)を2つ付けて「_」をエスケープすればよい。
つまり、以下のようにする。
select * from テーブル名 where カラム名 like '%\\_%';
《例》
select * from nobuneko_table where nobuneko_column like '%\\_%';
(テーブル「nobuneko_table」のカラム「nobuneko_column」に「_」を含むレコードを検索する。)