Heim >Datenbank >MySQL-Tutorial >Wie kann ich PostgreSQL effizient nach Werten abfragen, die mit „00' und einem dritten Zeichen ungleich Null beginnen?

Wie kann ich PostgreSQL effizient nach Werten abfragen, die mit „00' und einem dritten Zeichen ungleich Null beginnen?

DDD
DDDOriginal
2024-12-26 17:58:09463Durchsuche

How Can I Efficiently Query PostgreSQL for Values Starting with

Regulärer Ausdruck in der PostgreSQL-LIKE-Klausel

Diese Abfrage versucht, Werte abzugleichen, die mit „00“ beginnen und ein drittes Zeichen enthalten, das sich von „0“ unterscheidet ', wie in '0090D0DF143A'. Die folgende Abfrage stimmt jedoch nicht überein:

SELECT * FROM table WHERE value LIKE '00[1-9]%'

Um dieses Problem zu beheben, sollten Sie den regulären Ausdrucksoperator „~“ zusammen mit einem Klammerausdruck außerhalb der LIKE-Klausel verwenden. Für eine optimale Leistung wird jedoch eine Kombination aus LIKE- und NOT LIKE-Klauseln empfohlen:

SELECT *
FROM   tbl
WHERE  value LIKE '00%'
AND    value NOT LIKE '000%'

Die LIKE-Klausel schränkt die potenziellen Übereinstimmungen mit einem linksverankerten Ausdruck effizient ein, während die NOT LIKE-Klausel dies weiter verfeinert Ergebnisse. Postgres kann Indizes für solche Ausdrücke verwenden, was zu einer schnelleren Abfrageausführung führt.

Darüber hinaus ist es wichtig, das Muster mit „^“ in regulären Ausdrücken am Anfang der Zeichenfolge zu verankern und Klammerausdrücke „“ zu verwenden 1', um mit jedem anderen Zeichen als übereinzustimmen '0'.


    Das obige ist der detaillierte Inhalt vonWie kann ich PostgreSQL effizient nach Werten abfragen, die mit „00' und einem dritten Zeichen ungleich Null beginnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn