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: