Direkt zum Inhalt
Urkunden
JSON-FunktionenTabellen & Schema ManagementMathe-FunktionenDatenbankenString-FunktionenAuslöserIndizesDatum FunktionenBasic Syntax

PostgreSQL ILIKE

Der ILIKE Operator in PostgreSQL ist eine case-insensitive Version des LIKE Operators, der für den Mustervergleich in SQL-Abfragen verwendet wird. Mit ihr kannst du nach einem bestimmten Muster in einer Zeichenkette suchen und dabei Groß- und Kleinschreibung ignorieren. Beachte, dass ILIKE spezifisch für PostgreSQL ist und möglicherweise in anderen SQL-Umgebungen nicht verfügbar ist.

Verwendung

Der ILIKE Operator ist nützlich, wenn du beim Vergleichen von Zeichenketten die Groß- und Kleinschreibung nicht berücksichtigen musst. Er wird oft in WHERE Klauseln verwendet, um Ergebnisse nach einem Muster zu filtern, unabhängig von der Groß- und Kleinschreibung.

SELECT column1, column2, ...
FROM table_name
WHERE column_name ILIKE pattern;

In dieser Syntax gibt column_name ILIKE pattern die zu durchsuchende Spalte und das übereinstimmende Muster an, wobei die Groß- und Kleinschreibung bei der Suche nicht berücksichtigt wird. Beachte, dass die Ergebnisse je nach Zeichenkodierung und Kollationierung variieren können, besonders in mehrsprachigen Datenbanken.

Beispiele

1. Grundlegende Übereinstimmung in Bezug auf Groß- und Kleinschreibung

SELECT * 
FROM employees
WHERE first_name ILIKE 'john';

In diesem Beispiel werden alle Zeilen aus der Tabelle employees abgerufen, in denen die Spalte first_name mit "john" übereinstimmt, wobei die Groß- und Kleinschreibung nicht berücksichtigt wird, z. B. "John", "john" oder "JOHN".

2. Wildcards verwenden

SELECT * 
FROM products
WHERE product_name ILIKE '%apple%';

Hier sucht die Abfrage nach jedem Vorkommen von "Apfel" in der Spalte product_name, unabhängig von der Groß- und Kleinschreibung, so dass Übereinstimmungen wie "Green Apple", "apple" oder "APPLE pie" möglich sind.

3. Komplexe Musterabgleiche

SELECT * 
FROM orders
WHERE order_description ILIKE 'order #%_';

In diesem Beispiel werden der Unterstrich (_) und das Prozentzeichen (%) als Platzhalter verwendet, um jedes einzelne Zeichen bzw. jede beliebige Folge von Zeichen zu finden.

Tipps und bewährte Praktiken

  • Verwende sie mit Bedacht, um die Leistung zu steigern. ILIKE kann aufgrund der Groß- und Kleinschreibung langsamer sein als LIKE, also verwende sie nur, wenn es nötig ist.
  • Kombiniere mit Indizes. Wenn möglich, verwende funktionale Indizes mit LOWER(), um die Leistung bei großen Datensätzen zu verbessern, wenn du ILIKE verwendest. Zum Beispiel:
    CREATE INDEX idx_lower_first_name ON employees (LOWER(first_name));
  • Achte auf die lokalen Einstellungen. Die Leistung kann je nach Gebietsschema und Zeichenkodierung variieren.
  • Optimiere die Nutzung von Mustern. Verwende bestimmte Muster, um den Suchumfang zu minimieren und die Abfragegeschwindigkeit zu erhöhen. Vermeide es nach Möglichkeit, Muster mit Platzhaltern zu beginnen.
  • Erwäge die Verwendung des Moduls citext. Für Anwendungen, die einen häufigen Textvergleich unter Berücksichtigung der Groß- und Kleinschreibung erfordern, bietet das Modul citext einen Texttyp, der die Groß- und Kleinschreibung nicht berücksichtigt.
  • Überlegungen zur Version. Obwohl es keine großen Unterschiede im Verhalten von ILIKE zwischen den PostgreSQL-Versionen gibt, solltest du immer in den Versionshinweisen nachsehen, ob es kleinere Updates oder Fehlerbehebungen gibt.