Kategorien:

Zeichenfolgen- und Binärfunktionen (Abgleich/Vergleich)

LIKE

Ermöglicht das Abgleichen von Zeichenfolgen basierend auf dem Vergleich mit einem Muster unter Berücksichtigung der Groß- und Kleinschreibung. Verwenden Sie für Abgleiche ohne Berücksichtigung der Groß- und Kleinschreibung stattdessen ILIKE.

Wenn die Subjektzeichenfolge mit dem Muster übereinstimmt, wird die Subjektzeichenfolge zurückgegeben.

LIKE, ILIKE und RLIKE führen ähnliche Operationen aus. RLIKE nutzt jedoch die POSIX EXE (Extended Regular Expression)-Syntax und nicht die SQL-Mustersyntax, die von LIKE und ILIKE verwendet wird.

Siehe auch:

ILIKE , RLIKE , LIKE ANY

Syntax

<subject> LIKE <pattern> [ ESCAPE <escape> ]

LIKE( <subject> , <pattern> [ , <escape> ] )

Argumente

Benötigt:

Subjekt

Abzugleichendes Subjekt. Dies ist normalerweise ein VARCHAR, obwohl auch andere Datentypen verwendet werden können.

Muster

Abzugleichendes Muster. Dies ist normalerweise ein VARCHAR, obwohl auch andere Datentypen verwendet werden können.

Optional:

Escape-Zeichen

Zeichen, die vor einem Platzhalterzeichen eingefügt werden, um anzuzeigen, dass der Platzhalter als normales Zeichen und nicht als Platzhalter interpretiert werden soll.

Rückgabewerte

Der Datentyp des zurückgegebenen Wertes entspricht dem Datentyp des Subjekts.

Nutzungshinweise

  • SQL-Platzhalter werden in Muster unterstützt:

    • Ein Unterstrich (_) nimmt einen Abgleich für beliebige Einzelzeichen vor.

    • Ein Prozentzeichen (%) nimmt einen Abgleich für eine beliebige Folge von null oder mehr Zeichen vor.

  • Platzhalter in Muster erkennen auch Zeilenumbruchzeichen (\n) in Subjekt als Übereinstimmungen.

  • Eine Mustererkennung mit LIKE deckt die gesamte Zeichenfolge ab. Um eine Sequenz an einer bestimmten Stelle in einer Zeichenfolge abzugleichen, beginnen und beenden Sie das Muster mit %.

  • NULL stimmt nicht mit NULL überein. Mit anderen Worten: Wenn das Subjekt NULL ist und das Muster NULL ist, wird dies nicht als Übereinstimmung angesehen.

  • Es gibt kein Standard-Escape-Zeichen.

  • Wenn Sie den umgekehrten Schrägstrich (Backslash) als Escape-Zeichen verwenden, müssen Sie den Backslash in der ESCAPE-Klausel als Escape-Zeichen angeben. Der folgende Befehl gibt beispielsweise an, dass das Escape-Zeichen der Backslash ist, und sucht dann mit diesem Escape-Zeichen nach „%“ als Literal (ohne das Escape-Zeichen wird „%“ als Platzhalter behandelt):

    'SOMETHING%' LIKE '%\\%%' ESCAPE '\\';
    

    Beispiele zur Verwendung von Escape-Zeichen und insbesondere des umgekehrten Schrägstrichs als Escape-Zeichen finden Sie unter Beispiele.

Sortierungsdetails

Arguments with collation specifications are currently not supported.

Beispiele

Die folgenden Beispiele zeigen die Verwendung von LIKE, NOT LIKE und des Platzhalterzeichens %:

CREATE OR REPLACE TABLE like_ex(subject varchar(20));
INSERT INTO like_ex VALUES
    ('John  Dddoe'),
    ('Joe   Doe'),
    ('John_down'),
    ('Joe down'),
    ('Elaine'),
    (''),    -- empty string
    (null);
SELECT * FROM like_ex WHERE subject LIKE '%Jo%oe%';
+-------------+
| SUBJECT     |
|-------------|
| John  Dddoe |
| Joe   Doe   |
+-------------+
SELECT * FROM like_ex WHERE subject LIKE '%J%h%^_do%' ESCAPE '^';
+-----------+
| SUBJECT   |
|-----------|
| John_down |
+-----------+
SELECT * FROM like_ex WHERE subject NOT LIKE 'John%';
+-----------+
| SUBJECT   |
|-----------|
| Joe   Doe |
| Joe down  |
| Elaine    |
|           |
+-----------+
SELECT * FROM like_ex WHERE subject NOT LIKE '';
+-------------+
| SUBJECT     |
|-------------|
| John  Dddoe |
| Joe   Doe   |
| John_down   |
| Joe down    |
| Elaine      |
+-------------+

Im folgenden Beispiel wird eine ESCAPE-Klausel verwendet:

INSERT INTO like_ex (subject) VALUES 
    ('100 times'),
    ('1000 times'),
    ('100%');

Ohne das Escape-Zeichen wird das Prozentzeichen („%“) als Platzhalter behandelt:

SELECT * FROM like_ex WHERE subject LIKE '100%'
    ORDER BY 1;
+------------+
| SUBJECT    |
|------------|
| 100 times  |
| 100%       |
| 1000 times |
+------------+

Beim Escape-Zeichen wird das Prozentzeichen („%“) als Literal behandelt:

SELECT * FROM like_ex WHERE subject LIKE '100^%' ESCAPE '^'
    ORDER BY 1;
+---------+
| SUBJECT |
|---------|
| 100%    |
+---------+

Im folgenden Beispiel wird eine ESCAPE-Klausel verwendet, in der der umgekehrte Schrägstrich (Backslash) das Escape-Zeichen ist. Beachten Sie, dass der Backslash selbst sowohl in der ESCAPE-Klausel als auch im Ausdruck mit Escape-Zeichen versehen werden muss:

SELECT * FROM like_ex WHERE subject LIKE '100\\%' ESCAPE '\\'
    ORDER BY 1;
+---------+
| SUBJECT |
|---------|
| 100%    |
+---------+