ホームページ > データベース > mysql チュートリアル > PostgreSQL で「00」で始まり「000」ではない文字列を効率的に照合するにはどうすればよいですか?

PostgreSQL で「00」で始まり「000」ではない文字列を効率的に照合するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-30 18:50:18
オリジナル
353 人が閲覧しました

How Can I Efficiently Match Strings Starting with

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 サイトの他の関連記事を参照してください。

    ソース:php.cn
    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    著者別の最新記事
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート