Das SQLite like()
Mit der Funktion können Sie eine Zeichenfolge mit einem bestimmten Muster vergleichen. Sie können bei Bedarf auch ein Fluchtzeichen angeben.
Sie können das like()
verwenden Funktion als Alternative zum LIKE
Operator (mit dem Sie den Y LIKE X [ESCAPE Z]
ausführen können Ausdruck).
Syntax
Sie können eines der folgenden verwenden:
like(X,Y)
like(X,Y,Z)
X
ist das MusterY
ist die ZeichenfolgeZ
ist ein optionales Fluchtzeichen
Einfaches Beispiel
Nehmen Sie die folgende Tabelle:
CatId CatName ---------- ---------- 1 Brush 2 Flutter 3 100%Fluff 4 100$Fluff
Wir können den folgenden Code ausführen, um alle Zeilen zurückzugeben, in denen der Name der Katze mit dem Buchstaben F beginnt:
SELECT * FROM Cats
WHERE like('F%', CatName);
Ergebnis:
CatId CatName ---------- ---------- 3 Flutter
In diesem Beispiel habe ich den %
verwendet Platzhalterzeichen, um anzugeben, dass beliebig viele Zeichen folgen können (einschließlich Nullzeichen), und dass es sich um beliebige Zeichen handeln kann.
Der Unterstrich (_) Zeichen
Hier ist ein Beispiel, das den Unterstrich (_
) Charakter. Dieses Platzhalterzeichen entspricht genau einem Zeichen – nicht mehr und nicht weniger.
SELECT * FROM Cats
WHERE like('Br_sh', CatName);
Ergebnis:
CatId CatName ---------- ---------- 1 Brush
Wie bereits erwähnt, stimmt es nur mit einem einzigen Zeichen überein. Basierend auf meinen Daten kann ich also Folgendes nicht tun und keine Übereinstimmungen erwarten.
SELECT * FROM Cats
WHERE like('Br_', CatName);
Ergebnis:
(Dies ist absichtlich leer, da keine Ergebnisse vorliegen).
Escapezeichen
Sie können bei Bedarf auch Zeichen maskieren. Fügen Sie dazu das Escape-Zeichen als dritten Parameter hinzu (und fügen Sie es auch vor dem Zeichen hinzu, das Sie mit Escapezeichen versehen möchten).
SELECT * FROM Cats
WHERE like('100\%F%', CatName, '\');
Ergebnis:
CatId CatName ---------- ---------- 3 100%Fluff
In diesem Fall habe ich das Prozentzeichen maskiert (%
). Ich tat dies, weil ich nach Katzen suchte, die ein echtes Prozentzeichen in ihrem Namen hatten. Eigentlich habe ich in diesem Fall nach einem ganz bestimmten Katzennamen gesucht – einem, der mit 100%F beginnt .
Wenn ich dem nicht entgangen wäre, wäre es als Platzhalter verwendet worden, und die Ergebnisse wären anders ausgefallen.
Folgendes bekomme ich, wenn ich das Escape-Zeichen entferne.
SELECT * FROM Cats
WHERE like('100%F%', CatName);
Ergebnis:
CatId CatName ---------- ---------- 3 100%Fluff 4 100$Fluff
Gib einen booleschen Wert zurück
Sie können das like()
verwenden Funktion, um eine 0 zurückzugeben oder 1 , abhängig davon, ob es eine Übereinstimmung gibt oder nicht.
Dies kann praktisch sein, wenn Sie alle Zeilen zurückgeben müssen, aber auch mit einem Flag, das anzeigt, ob sie Ihren Kriterien entsprechen oder nicht.
Hier ist ein Beispiel.
SELECT
CatName,
like('F%', CatName)
FROM Cats;
Ergebnis:
CatName CatName LIKE 'F%' ---------- ------------------ Brush 0 Flutter 1 100%Fluff 0 100$Fluff 0
In diesem Fall entsprach nur eine Zeile den Kriterien, aber wir konnten trotzdem alle anderen Zeilen sehen.
Groß- und Kleinschreibung
Standardmäßig ist die SQLite like()
Die Funktion berücksichtigt bei ASCII-Zeichen die Groß-/Kleinschreibung nicht. Das bedeutet, dass Groß- und Kleinbuchstaben übereinstimmen, unabhängig davon, welche Schreibweise Sie in Ihrem Muster verwenden.
Sie können case_sensitive_like verwenden PRAGMA-Anweisung zur Durchführung von Übereinstimmungen mit Berücksichtigung der Groß-/Kleinschreibung im ASCII-Bereich.
Beispiele finden Sie unter So machen Sie den LIKE-Operator von SQLite unter Berücksichtigung der Groß- und Kleinschreibung. Dieser Artikel wurde für LIKE
geschrieben Operator, aber es gilt auch für like()
Funktion.