ホームページ >データベース >mysql チュートリアル >PostgreSQL で「00」で始まる文字列とゼロ以外の 3 桁目を効率的に照合するにはどうすればよいですか?
PostgreSQL LIKE 句の正規表現
この式は、「00」で始まり、その後に 1 から 1 までの数字が続く文字列と一致することを目的としています。ただし、3 番目の文字が「0」である文字列は除きます。間違った式は次のとおりです:
select * from table where value like '00[1-9]%'
LIKE 演算子の間違った使用法:
PostgreSQL の正規表現演算子は、LIKE の代わりにチルダ (~) を使用します。括弧式を使用するには、演算子を ~ に変更する必要があります。
改良された正規表現:
SELECT * FROM table WHERE value ~ '^00[^0]'
の代替使用法LIKE:
正規表現の代わりに、否定と組み合わせた LIKE 演算子を使用できます:
SELECT * FROM table WHERE value LIKE '00%' -- Starts with '00' AND value NOT LIKE '000%' -- Excludes third character '0'
このアプローチは、多くの場合、単純なパターンの場合、正規表現より高速です。
インデックスの最適化:
Postgres のサポート'00%' のような左アンカー LIKE 式のインデックス。インデックスを作成すると、大規模なテーブルのパフォーマンスが大幅に向上します。正規表現は常にインデックスを利用するとは限らないため、より良いインデックス作成の機会を得るために LIKE の代替手段を検討する価値があります。
以上がPostgreSQL で「00」で始まる文字列とゼロ以外の 3 桁目を効率的に照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。