Zusammenfassung :In diesem Tutorial erfahren Sie, wie Sie Daten basierend auf Musterabgleich mit SQLite LIKE
abfragen Betreiber.
Einführung in SQLite LIKE
Betreiber
Manchmal kennen Sie nicht genau das vollständige Keyword, das Sie abfragen möchten. Beispielsweise wissen Sie vielleicht, dass Ihr Lieblingslied das Wort elevator
enthält aber Sie kennen den Namen nicht genau.
Um Daten basierend auf Teilinformationen abzufragen, verwenden Sie den LIKE
Operator im WHERE
-Klausel des SELECT
Anweisung wie folgt:
SELECT
column_list
FROM
table_name
WHERE
column_1 LIKE pattern;
Code language: SQL (Structured Query Language) (sql)
Beachten Sie, dass Sie auch den LIKE
verwenden können Operator im WHERE
-Klausel anderer Anweisungen wie DELETE
und UPDATE
.
SQLite bietet zwei Platzhalter zum Erstellen von Mustern. Sie sind Prozentzeichen %
und Unterstrich _
:
- Das Prozentzeichen
%
Platzhalter entspricht einer beliebigen Folge von null oder mehr Zeichen. - Der Unterstrich
_
Platzhalter entspricht jedem einzelnen Zeichen.
Das Prozentzeichen %
Wildcard-Beispiele
Das s%
Muster, das das Prozentzeichen als Platzhalter verwendet ( %
) stimmt mit jeder Zeichenfolge überein, die mit s
beginnt B. son
und so
.
Der %er
Muster passt auf jeden String, der mit er
endet wie peter
, clever
usw.
Und der %per%
pattern stimmt mit jedem String überein, der per
enthält wie percent
und peeper
.
Der Unterstrich _
Wildcard-Beispiele
Der h_nt
Muster stimmt mit hunt
überein , hint
usw. Der __pple
Muster stimmt mit topple
überein , supple
, tipple
, etc.
Beachten Sie, dass SQLite LIKE
Bei dem Operator wird die Groß- und Kleinschreibung nicht beachtet. Es bedeutet "A" LIKE "a"
ist wahr.
Für Unicode-Zeichen, die sich nicht in den ASCII-Bereichen befinden, wird der LIKE
Beim Operator wird zwischen Groß- und Kleinschreibung unterschieden, z. B. "Ä" LIKE "ä"
ist falsch.
Falls Sie LIKE
machen möchten Operator Groß-/Kleinschreibung beachtet, müssen Sie das folgende PRAGMA verwenden:
PRAGMA case_sensitive_like = true;
Code language: SQL (Structured Query Language) (sql)
SQLite LIKE
Beispiele
Wir verwenden die Tabelle tracks
in der Beispieldatenbank für die Demonstration.
Um die Tracks zu finden, deren Namen mit dem Wild
beginnen Literal-String verwenden Sie das Prozentzeichen %
Platzhalter am Ende des Musters.
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE 'Wild%'
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Um die Tracks zu finden, deren Namen mit Wild
enden Wort verwenden Sie %
Platzhalter am Anfang des Musters.
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild'
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Um die Tracks zu finden, deren Namen den Wild
enthalten Literal-String, verwenden Sie %
Platzhalter am Anfang und Ende des Musters:
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Wild%';
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
Die folgende Anweisung findet die Tracks, deren Namen Folgendes enthalten:null oder mehr Zeichen (%
), gefolgt von Br
, gefolgt von einem Zeichen ( _
), gefolgt von wn
, gefolgt von null oder mehr Zeichen ( %
).
SELECT
trackid,
name
FROM
tracks
WHERE
name LIKE '%Br_wn%';
Code language: SQL (Structured Query Language) (sql)
Probieren Sie es aus
SQLite LIKE
mit ESCAPE
Klausel
Wenn das Muster, das Sie abgleichen möchten, %
enthält oder _
müssen Sie in einem optionalen ESCAPE
ein Escape-Zeichen verwenden Klausel wie folgt:
column_1 LIKE pattern ESCAPE expression;
Code language: SQL (Structured Query Language) (sql)
Wenn Sie den ESCAPE
angeben -Klausel, die LIKE
Der Operator wertet den expression
aus das folgt dem ESCAPE
Schlüsselwort zu einer Zeichenfolge, die aus einem einzelnen Zeichen oder einem Escape-Zeichen besteht.
Dann können Sie dieses Escape-Zeichen im Muster verwenden, um das wörtliche Prozentzeichen (%) oder den Unterstrich (_
) einzuschließen ). Das LIKE
Operator wertet das Prozentzeichen aus (%
) oder Unterstrich (_
), das auf das Escape-Zeichen als Literalzeichenfolge folgt, nicht als Platzhalterzeichen.
Angenommen, Sie möchten die Zeichenfolge 10%
abgleichen in einer Spalte einer Tabelle. SQLite interpretiert jedoch das Prozentzeichen %
als Platzhalterzeichen. Daher müssen Sie dieses Prozentzeichen %
maskieren mit einem Escape-Zeichen:
column_1 LIKE '%10\%%' ESCAPE '\';
Code language: SQL (Structured Query Language) (sql)
In diesem Ausdruck ist das LIKE
Der Operator interpretiert das erste %- und das letzte %-Prozentzeichen als Platzhalter und das zweite Prozentzeichen als wörtliches Prozentzeichen.
Beachten Sie, dass Sie andere Zeichen als Escape-Zeichen verwenden können, z. B. /, @, $.
Betrachten Sie das folgende Beispiel:
Erstellen Sie zuerst eine Tabelle t
das hat eine Spalte:
CREATE TABLE t(
c TEXT
);
Code language: SQL (Structured Query Language) (sql)
Als nächstes fügen Sie einige Zeilen in die Tabelle t
ein :
INSERT INTO t(c)
VALUES('10% increase'),
('10 times decrease'),
('100% vs. last year'),
('20% increase next year');
Code language: SQL (Structured Query Language) (sql)
Fragen Sie dann Daten von t
ab Tabelle:
SELECT * FROM t;
Code language: SQL (Structured Query Language) (sql)
c
----------------------
10% increase
10 times decrease
100% vs. last year
20% increase next year
Code language: Shell Session (shell)
Versuchen Sie viertens, die Zeile zu finden, deren Wert in c
steht Spalte enthält die 10%
Literale Zeichenfolge:
SELECT c
FROM t
WHERE c LIKE '%10%%';
Code language: SQL (Structured Query Language) (sql)
Es werden jedoch Zeilen zurückgegeben, deren Werte in der Spalte c 10:
enthaltenc
------------------
10% increase
10 times decrease
100% vs. last year
Fünftens, um das richtige Ergebnis zu erhalten, verwenden Sie den ESCAPE
-Klausel wie in der folgenden Abfrage gezeigt:
SELECT c
FROM t
WHERE c LIKE '%10\%%' ESCAPE '\';
Code language: SQL (Structured Query Language) (sql)
Hier ist die Ergebnismenge:
c
------------
10% increase
Code language: Shell Session (shell)
In diesem Tutorial haben Sie gelernt, wie Sie SQLite LIKE
verwenden -Operator zum Abfragen von Daten basierend auf Musterabgleich mit zwei Platzhalterzeichen Prozentzeichen (%
) und Unterstrich (_
).