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