SQLite LIKE-Klausel

SQLitesLIKE-Operator wird verwendet, um Textwerte mit einem durch Wildcards angegebenen Muster abzugleichen. Wenn der Suchausdruck mit dem Musterausdruck übereinstimmt, gibt der LIKE-Operator true zurück, d. h. 1. Hier sind zwei Wildcards, die mit dem LIKE-Operator verwendet werden:

  • Prozentzeichen (%)

  • Unterstrich (_)

Das Prozentzeichen (%) steht für null, eine oder mehrere Zahlen oder Zeichen. Der Unterstrich (_) steht für eine einzelne Zahl oder ein einzelnes Zeichen. Diese Symbole können kombiniert werden.

Syntax

Die grundlegende Syntax von % und _ lautet wie folgt:

SELECT column_list 
FROM table_name
WHERE column LIKE 'XXXX%'

or 

SELECT column_list 
FROM table_name
WHERE column LIKE '%XXXX%'

or

SELECT column_list 
FROM table_name
WHERE column LIKE 'XXXX_'

or

SELECT column_list 
FROM table_name
WHERE column LIKE '_XXXX'

or

SELECT column_list 
FROM table_name
WHERE column LIKE '_XXXX_'

Sie können die Operatoren AND oder OR verwenden, um N Bedingungen zu kombinieren. Hier kann XXXX ein beliebiger numerischer oder Zeichenkettenwert sein.

Beispiele

Die folgenden Beispiele veranschaulichen die Unterschiede der LIKE-Klausel mit den Operatoren '%' und '_':

AnweisungBeschreibung
WHERE SALARY LIKE '200%'Finden Sie einen beliebigen Wert, der mit 200 beginnt
WHERE SALARY LIKE '%200%'Finden Sie einen beliebigen Wert, der 200 an einer beliebigen Position enthält
WHERE SALARY LIKE '_00%'Finden Sie jeden Wert, bei dem die zweite und dritte Position 00 sind
WHERE SALARY LIKE '2_%_%'Finden Sie jeden Wert, der mit 2 beginnt und mindestens 3 Zeichen lang ist
WHERE SALARY LIKE '%2'Finden Sie jeden Wert, der mit 2 endet
WHERE SALARY LIKE '_2%3'Finde jeden Wert, bei dem die zweite Position 2 ist und der mit 3 endet
WHERE SALARY LIKE '2___3'Finde jeden Wert, der 5 Ziffern lang ist, mit 2 beginnt und mit 3 endet

Betrachten wir ein praktisches Beispiel. Angenommen, die Tabelle COMPANY enthält die folgenden Datensätze:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Das folgende Beispiel zeigt alle Datensätze in der Tabelle COMPANY, bei denen AGE mit 2 beginnt:

sqlite> SELECT * FROM COMPANY WHERE AGE  LIKE '2%';

Dies erzeugt das folgende Ergebnis:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

Das folgende Beispiel zeigt alle Datensätze in der Tabelle COMPANY, bei denen der ADDRESS-Text einen Bindestrich (-) enthält:

sqlite> SELECT * FROM COMPANY WHERE ADDRESS  LIKE '%-%';

Dies erzeugt das folgende Ergebnis:

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
4           Mark        25          Rich-Mond   65000.0
6           Kim         22          South-Hall  45000.0
Andere Erweiterungen