PostgreSQL の正規表現
正規表現は、テキスト文字列内のパターンを検索する強力な方法を提供します。ただし、これらを効果的に使用する際に問題が発生する場合があります。
そのような例の 1 つは、「00」で始まり 3 番目の文字が「0」ではない文字列と一致させようとする場合です。 「00[1-9]%」などの式で LIKE 句を使用すると、期待どおりに動作しない可能性があります。
これに対処するには、正規表現演算子 (~) と括弧式を使用できます。次のクエリを考えてみましょう。
SELECT * FROM tbl WHERE value ~ '^00[^0]'
ここで、^ はパターンが文字列の先頭で一致する必要があることを示し、1 は一致する文字クラスです。 「0」以外の任意の文字。
あるいは、最適なパフォーマンスを得るために、LIKE と NOT LIKE を組み合わせて使用することもできます。式:
SELECT * FROM tbl WHERE value LIKE '00%' AND value NOT LIKE '000%'
LIKE は通常、正規表現よりも高速であるため、適切な場合に使用すると有益です。さらに、PostgreSQL は左アンカー LIKE 式 (「00%」など) のインデックスを利用できるため、大きなテーブルのパフォーマンスが大幅に向上します。
以上がPostgreSQL で「00」で始まり「000」ではない文字列を効率的に照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。