PostgreSQL LIKE 句の正規表現
このクエリは、'00' で始まり 3 番目の文字が '0 以外である値と一致することを求めます。 「0090D0DF143A」のように。ただし、次のクエリは一致しません:
SELECT * FROM table WHERE value LIKE '00[1-9]%'
この問題に対処するには、正規表現演算子 '~' を LIKE 句の外側で括弧式とともに使用することを検討してください。ただし、最適なパフォーマンスを得るには、LIKE 句と NOT LIKE 句の組み合わせをお勧めします。
SELECT * FROM tbl WHERE value LIKE '00%' AND value NOT LIKE '000%'
LIKE 句は、左アンカー式を使用して潜在的な一致を効率的に絞り込みますが、NOT LIKE 句は、結果。 Postgres はそのような式にインデックスを利用できるため、クエリの実行が高速化されます。
さらに、正規表現で '^' を使用してパターンを文字列の先頭に固定し、括弧表現 ' を使用することが重要です。 1' 以外の文字と一致します。 '0'.
以上が「00」で始まる値とゼロ以外の 3 番目の文字について PostgreSQL に効率的にクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。