PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Beispiele

โšก Intelligente Zusammenfassung

PostgreSQL LIKE vergleicht Text mit Mustern mithilfe zweier Platzhalter โ€“ dem Prozentzeichen und dem Unterstrich. Dieses Tutorial zeigt die Verwendung von LIKE und NOT LIKE in SELECT-Anweisungen anhand von Beispielen in psql und pgAdmin.

  • ๐Ÿ” Core Operator: LIKE vergleicht eine Spalte oder einen Ausdruck mit einem Platzhaltermuster und gibt bei einer รœbereinstimmung true zurรผck.
  • ???? Zwei Joker: % entspricht null oder mehr Zeichen; _ entspricht genau einem Zeichen.
  • โœ‹ Umgekehrte รœbereinstimmung: Kombinieren Sie NOT mit LIKE, um Zeilen zurรผckzugeben, die den folgenden Bedingungen entsprechen: kein Frontalunterricht. dem Muster entsprechen.
  • ๏ธ Zwei Schnittstellen: Fรผhren Sie dieselben Abfragen entweder รผber die psql-Befehlszeile oder grafisch innerhalb von pgAdmin aus.
  • ๐ŸŽฏ Fluchtcharakter: Verwenden Sie die ESCAPE-Klausel, um innerhalb des Musters Literalzeichen % oder _ zu erkennen.
  • ๐Ÿค– KI-Boost: KI-Datenbanktools รผbersetzen Suchanfragen in Klartext in LIKE-Muster und schlagen ILIKE vor, wenn eine Suche ohne Berรผcksichtigung der GroรŸ-/Kleinschreibung erforderlich ist.

PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Beispiele

Das PostgreSQL LIKE Der Operator vergleicht Textwerte mithilfe von Platzhaltern mit Mustern. Wenn der Suchausdruck mit dem Muster รผbereinstimmt, gibt LIKE einen Wert zurรผck. trueWildcards funktionieren in der WHERE Klausel von SELECT, UPDATE, INSERTden DELETE.

Was sind PostgreSQL Platzhalter?

PostgreSQL Unterstรผtzt zwei LIKE-Wildcards:

  • Prozentzeichen (%): Passt zu null, einem oder mehreren Zeichen oder Ziffern.
  • Unterstrich (_): Stimmt genau mit einem Zeichen oder einer Ziffer รผberein.

Die beiden Symbole kรถnnen innerhalb desselben Musters kombiniert werden. Wenn LIKE ohne Wildcards verwendet wird, verhรคlt es sich wie das Gleichheitszeichen (=) Operator.

PostgreSQL LIKE-Syntax

Die grundlegende LIKE-Syntax lautet:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • Ausdruck โ€” ein Zeichenausdruck, typischerweise ein Spalten- oder Feldname.
  • Anleitungen โ€” ein Zeichenausdruck, der Platzhalter enthรคlt.
  • Escape-Zeichen โ€” optional. Ermรถglicht die wรถrtliche Zuordnung. % or _ Zeichen. Wird der Backslash weggelassen (\) ist das Standard-Escapezeichen.

PostgreSQL LIKE mit dem %-Wildcard

Das % Das Zeichen kann null, einem oder mehreren Zeichen entsprechen. Betrachten Sie Folgendes: Book Tabelle:

Beispielbuchtabelle, die in den LIKE-Beispielen verwendet wird

Um Bรผcher zu finden, deren Name mit โ€žLearโ€œ beginnt, fรผhren Sie die unten stehende Abfrage aus.

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Die Abfrage liefert folgendes Ergebnis:

LIKE Lear%-Abfrageergebnis, das passende Bรผcher zurรผckgibt

Um Bรผcher zu finden, deren Titel irgendwo โ€žvonโ€œ enthรคlt:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Die Abfrage liefert folgendes Ergebnis:

LIKE %by% Abfrageergebnis mit รผbereinstimmenden Bรผchern

PostgreSQL LIKE mit dem _ Wildcard

Das _ โ€žsignโ€œ entspricht genau einem Zeichen. Die folgende Abfrage findet Namen, bei denen das erste Zeichen ein beliebiger Buchstabe ist, gefolgt von โ€žearnโ€œ und dann einem beliebigen Suffix:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Die Abfrage liefert folgendes Ergebnis:

Ergebnis der LIKE _earn%-Abfrage mit einstelligen Prรคfixรผbereinstimmungen

Ein weiteres Beispiel โ€“ finde jeden Text, der mit โ€žBeginnerโ€œ plus einem weiteren Zeichen endet:

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

Die Abfrage liefert folgendes Ergebnis:

LIKE %Beginner_ Abfrageergebnis, das mit einem nachfolgenden einzelnen Zeichen รผbereinstimmt

PostgreSQL NICHT WIE OperaDo.

Kombinieren Sie LIKE mit NOT, um Zeilen zurรผckzugeben, die den folgenden Operatoren entsprechen: kein Frontalunterricht. Passe das Muster an. Liste beispielsweise alle Bรผcher auf, deren Name nicht mit โ€žPostโ€œ beginnt:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Die Abfrage liefert folgendes Ergebnis:

NICHT WIE das Ergebnis von Post%, bei dem Bรผcher, die mit Post beginnen, ausgeschlossen werden.

Nur ein Buch erfรผllt die Bedingung. Listen Sie nun alle Bรผcher auf, deren Name die Bedingung erfรผllt. kein Frontalunterricht. enthalten das Wort โ€žMadeโ€œ:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Die Abfrage liefert folgendes Ergebnis:

NICHT WIE %Made% Ergebnis, das drei รผbereinstimmende Bรผcher zurรผckgibt

Drei Zeilen erfรผllen die Bedingung.

Verwendung von LIKE mit pgAdmin

Die gleichen Abfragen kรถnnen auch grafisch im Abfragetool von pgAdmin ausgefรผhrt werden.

% Platzhalter in pgAdmin

Schritt 1) Melden Sie sich bei pgAdmin an.

Schritt 2) Klicken Sie in der Navigationsleiste links auf Datenbanken, dann klick Demo.

pgAdmin-Navigationsbaum mit den erweiterten Optionen โ€žDatenbankenโ€œ und โ€žDemoโ€œ

Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Schritt 4) Klicken Sie auf Ausfรผhren.

pgAdmin-Abfragetool mit der Schaltflรคche โ€žAusfรผhrenโ€œ in der Symbolleiste

Im Ergebnisbereich werden die passenden Bรผcher angezeigt:

pgAdmin-Ergebnisbereich fรผr die LIKE Lear%-Abfrage

Um nach einem Buch zu suchen, dessen Titel irgendwo โ€žvonโ€œ enthรคlt:

Schritt 1) Geben Sie Folgendes im Abfrageeditor ein:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Schritt 2) Klicken Sie auf Ausfรผhren.

pgAdmin-Abfragetool fรผhrt die LIKE %by%-Abfrage aus

Im Ergebnisbereich wird Folgendes angezeigt:

pgAdmin-Ergebnisbereich fรผr die LIKE %by%-Abfrage

_ Platzhalter in pgAdmin

Schritt 1) Melden Sie sich bei pgAdmin an.

Schritt 2) Klicken Sie in der Navigationsleiste links auf Datenbanken, dann klick Demo.

Navigationsbaum von pgAdmin, der die Datenbankstruktur anzeigt

Schritt 3) Geben Sie die Abfrage im Abfrageeditor ein:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Schritt 4) Klicken Sie auf Ausfรผhren.

Das pgAdmin-Abfragetool fรผhrt die Abfrage LIKE _earn% aus.

Im Ergebnisbereich wird Folgendes angezeigt:

pgAdmin-Ergebnisbereich fรผr die Abfrage LIKE _earn%

Schritt 5) Fรผhren Sie das zweite Beispiel aus:

  1. Geben Sie die Abfrage im Abfrageeditor ein:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Klicken Sie auf Ausfรผhren.

pgAdmin-Abfragetool fรผhrt die LIKE %Beginner_ Abfrage aus

Im Ergebnisbereich wird Folgendes angezeigt:

pgAdmin-Ergebnisbereich fรผr die LIKE %Beginner_-Abfrage

NICHT WIE in pgAdmin

Schritt 1) Melden Sie sich bei pgAdmin an.

Schritt 2) Klicken Sie in der Navigationsleiste links auf Datenbanken, dann klick Demo.

pgAdmin-Navigationsbaum fรผr das Beispiel NOT LIKE

Schritt 3) Um alle Bรผcher aufzulisten, deren Name nicht mit โ€žPostโ€œ beginnt, geben Sie Folgendes ein:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Schritt 4) Klicken Sie auf Ausfรผhren.

pgAdmin-Abfragetool fรผhrt die Abfrage NOT LIKE Post% aus

Im Ergebnisbereich wird Folgendes angezeigt:

pgAdmin-Ergebnisbereich fรผr die Abfrage NOT LIKE Post%

Zusรคtzliche pgAdmin-Ergebnisdetails fรผr die NOT LIKE-Abfrage

Um Bรผcher aufzulisten, deren Name das Wort โ€žMadeโ€œ nicht enthรคlt:

Schritt 1) Geben Sie Folgendes im Abfrageeditor ein:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Schritt 2) Klicken Sie auf Ausfรผhren.

Das pgAdmin-Abfragetool fรผhrt die Abfrage NOT LIKE %Made% aus.

Im Ergebnisbereich wird Folgendes angezeigt:

pgAdmin-Ergebnisbereich fรผr die Abfrage NOT LIKE %Made%

Laden Sie die in diesem Tutorial verwendete Datenbank herunter..

Hรคufig gestellte Fragen

LIKE unterscheidet zwischen GroรŸ- und Kleinschreibung, wรคhrend ILIKE die GroรŸ-/Kleinschreibung ignoriert. ILIKE ist ein PostgreSQL Erweiterung. Beispielsweise findet der Name ILIKE 'lear%' sowohl รœbereinstimmungen mit โ€žLearnโ€œ als auch mit โ€žLEARโ€œ. Verwenden Sie ILIKE, wenn die GroรŸ-/Kleinschreibung bei Benutzereingaben unvorhersehbar ist.

Verwenden Sie die ESCAPE-Klausel, um ein Escape-Zeichen zu deklarieren, und stellen Sie anschlieรŸend das Wildcard-Zeichen davor. Beispielsweise findet WHERE code LIKE '50!%%' ESCAPE '!' Werte, die mit โ€ž50%โ€œ beginnen, da das Ausrufezeichen das Prozentzeichen maskiert.

Verwenden Sie LIKE fรผr einfache Prรคfix-, Suffix- oder Teilstring-รœbereinstimmungen. Wechseln Sie zu POSIX-Regex (~ und ~*), wenn Sie Zeichenklassen, Alternativen oder Quantifizierer benรถtigen. Regulรคre Ausdrรผcke sind zwar leistungsfรคhiger, aber fรผr einfache Muster in der Regel langsamer als LIKE.

Ja. AI Assistenten wie Text-zu-SQL-Copiloten รผbersetzen Eingabeaufforderungen wie โ€žFinde Kunden, deren E-Mail acme enthรคltโ€œ in name LIKE '%acme%' und erklรคren die Wildcard-Logik, wodurch die Ad-hoc-Berichterstellung beschleunigt wird.

Generative KI analysiert den Abfrageplan, empfiehlt einen Trigrammindex (pg_trgm) fรผr LIKE-Suchen mit fรผhrenden Wildcards und korrigiert Suchmuster, die die Indexnutzung verhindern. Dadurch werden vollstรคndige Tabellenscans in Millisekunden-Suchvorgรคnge bei groรŸen Tabellen umgewandelt. PostgreSQL Tabellen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: