SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SQLite LIKE

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 _ :

  1. Das Prozentzeichen % Platzhalter entspricht einer beliebigen Folge von null oder mehr Zeichen.
  2. 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 yearCode 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:

enthalten
c                 
------------------
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% increaseCode 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 (_ ).