PostgreSQL型システムの特別な機能を使用できます:
SELECT *
FROM tbl t
WHERE t::text LIKE '%999999%';
複合タイプ
があります PostgreSQLで作成するすべてのテーブルに同じ名前を付けます。そして、text
があります PostgreSQLのすべてのタイプの表現(値を入力/出力するため)。
したがって、行全体をtext
にキャストするだけです。 文字列「999999」が任意の列(そのtext
)に含まれている場合 表現、正確には)上記のクエリに表示されることが保証されています。
誤検知を除外することはできません ただし、Postgresが行表現に使用するセパレータやデコレータを検索語の一部にすることができる場合は完全に。ただ非常に ありそうもない。そして、検索用語「999999」には当てはまりません。
最近、codereview.SEで非常によく似た質問がありました。 回答にもう少し説明を追加しました 。