PostgreSQL LIKE
Die String-Funktion `LIKE` in PostgreSQL wird verwendet, um Textmuster innerhalb von Spaltenwerten abzugleichen. Sie ermöglicht es dir, nach bestimmten Zeichenfolgen in String-Datentypen zu suchen.
Verwendung
Die Funktion `LIKE` wird häufig in `SELECT`-Anweisungen verwendet, um Daten nach bestimmten Textmustern zu filtern. Sie ist besonders nützlich, um Zeilen zu finden, in denen der Wert einer Spalte einem bestimmten Muster entspricht.
SELECT column1, column2, ...
FROM table_name
WHERE column_name LIKE pattern;
In dieser Syntax prüft `Spaltenname LIKE Muster`, ob `Spaltenname` mit dem angegebenen `Muster` übereinstimmt, das Platzhalterzeichen wie `%` und `_` enthalten kann.
Beispiele
1. Grundlegende Verwendung mit Wildcard %
SELECT *
FROM products
WHERE product_name LIKE 'Apple%';
Dieses Beispiel ruft alle Zeilen aus der Tabelle "Produkte" ab, in denen "Produktname" mit "Apple" beginnt.
2. Mustervergleiche mit Platzhalter _
SELECT customer_id, customer_name
FROM customers
WHERE customer_name LIKE 'J_n%';
Diese Abfrage wählt Kunden aus, deren `Kundenname` mit "J" beginnt, ein beliebiges einzelnes Zeichen an der zweiten Position hat und von "n" gefolgt wird.
3. LIKE mit NOT-Operator kombinieren
SELECT order_id, order_date
FROM orders
WHERE order_status NOT LIKE 'Cancelled%';
In diesem Beispiel werden Bestellungen aus der Tabelle "Bestellungen" geholt, deren "Bestellstatus" nicht mit "Storniert" beginnt.
4. ESCAPE-Klausel verwenden
SELECT comment_id
FROM comments
WHERE comment_text LIKE '100\% sure' ESCAPE '\';
Diese Abfrage findet Kommentare, die den Text "100%" wortwörtlich enthalten, indem sie den Backslash `\` verwenden, um das `%`-Zeichen zu umgehen.
Tipps und bewährte Praktiken
- Verwende `%` und `_` mit Bedacht. Der Platzhalter `%` passt auf eine beliebige Folge von Zeichen, während `_` auf ein einzelnes Zeichen passt.
- Optimiere für die Leistung. Sei vorsichtig mit `%` am Anfang von Mustern, da es die Abfrageleistung verlangsamen kann. Beachte, dass Indizes in der Regel nicht verwendet werden, wenn das Muster mit einem Platzhalter beginnt.
- Berücksichtige die Groß- und Kleinschreibung. Verwende bei Bedarf `ILIKE` für den Mustervergleich ohne Berücksichtigung der Groß- und Kleinschreibung.
- Kombiniere mit anderen Bedingungen. Verwende `LIKE` mit zusätzlichen `WHERE` Bedingungen, um die Ergebnisse effektiv einzugrenzen.
- Sonderzeichen ausblenden. Verwende die `ESCAPE`-Klausel, um bei Bedarf nach wörtlichen `%`- oder `_`-Zeichen zu suchen, wie in diesem Beispiel gezeigt.
- Erforsche Alternativen. Für komplexere Mustervergleiche solltest du `SIMILAR TO` verwenden, da es reguläre Ausdrücke unterstützt.