SQLite - LIKE Clause

SQLite LIKEoperator służy do dopasowywania wartości tekstowych do wzorca przy użyciu symboli wieloznacznych. Jeśli wyrażenie wyszukiwania można dopasować do wyrażenia wzorcowego, operator LIKE zwróci wartość true, czyli 1. Istnieją dwa symbole wieloznaczne używane w połączeniu z operatorem LIKE -

  • Znak procentu (%)
  • Podkreślenie (_)

Znak procentu oznacza zero, jedną lub wiele liczb lub znaków. Podkreślenie reprezentuje pojedynczą liczbę lub znak. Symbole te mogą być używane w kombinacjach.

Składnia

Poniżej znajduje się podstawowa składnia% i _.

SELECT FROM table_name
WHERE column LIKE 'XXXX%'
or 
SELECT FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT FROM table_name
WHERE column LIKE '_XXXX_'

Możesz łączyć Nliczba warunków korzystających z operatorów AND lub OR. Tutaj XXXX może być dowolną wartością liczbową lub ciągiem znaków.

Przykład

Poniższa tabela zawiera szereg przykładów pokazujących WHERE część mającą różne klauzule LIKE z operatorami „%” i „_”.

Sr.No. Oświadczenie i opis
1

WHERE SALARY LIKE '200%'

Znajduje wartości zaczynające się od 200

2

WHERE SALARY LIKE '%200%'

Znajduje wartości, które mają 200 na dowolnej pozycji

3

WHERE SALARY LIKE '_00%'

Znajduje wszystkie wartości, które mają 00 na drugiej i trzeciej pozycji

4

WHERE SALARY LIKE '2_%_%'

Znajduje wszystkie wartości, które zaczynają się od 2 i mają co najmniej 3 znaki

5

WHERE SALARY LIKE '%2'

Znajduje wszystkie wartości kończące się na 2

6

WHERE SALARY LIKE '_2%3'

Znajduje wszystkie wartości, które mają 2 na drugiej pozycji i kończą się 3

7

WHERE SALARY LIKE '2___3'

Znajduje wszystkie wartości w pięciocyfrowej liczbie rozpoczynającej się od 2 i kończącej na 3

Weźmy prawdziwy przykład, rozważmy tabelę COMPANY z następującymi rekordami.

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

Poniżej znajduje się przykład, który wyświetli wszystkie rekordy z tabeli COMPANY, w której WIEK zaczyna się od 2.

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

Spowoduje to następujący wynik.

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

Poniżej znajduje się przykład, w którym zostaną wyświetlone wszystkie rekordy z tabeli COMPANY, w której ADRES będzie zawierał łącznik (-) w tekście.

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

Spowoduje to następujący wynik.

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