SQLite - GLOB Clause
SQLite GLOBoperator jest używany do dopasowywania tylko wartości tekstowych do wzorca przy użyciu symboli wieloznacznych. Jeśli wyrażenie wyszukiwania można dopasować do wyrażenia wzorcowego, operator GLOB zwróci wartość true, czyli 1. W przeciwieństwie do operatora LIKE, GLOB rozróżnia wielkość liter i jest zgodny ze składnią systemu UNIX w celu określenia następujących symboli wieloznacznych.
- Znak gwiazdki (*)
- Znak zapytania (?)
Znak gwiazdki (*) oznacza zero lub wiele liczb lub znaków. Znak zapytania (?) Reprezentuje pojedynczą liczbę lub znak.
Składnia
Poniżej znajduje się podstawowa składnia * i ?.
SELECT FROM table_name
WHERE column GLOB 'XXXX*'
or
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
or
SELECT FROM table_name
WHERE column GLOB 'XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '????'
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, gdzie część ma inną klauzulę LIKE z „*” i „?” operatorzy.
Sr.No. | Oświadczenie i opis |
---|---|
1 | WHERE SALARY GLOB '200*' Znajduje wartości zaczynające się od 200 |
2 | WHERE SALARY GLOB '*200*' Znajduje wartości, które mają 200 na dowolnej pozycji |
3 | WHERE SALARY GLOB '?00*' Znajduje wszystkie wartości, które mają 00 na drugiej i trzeciej pozycji |
4 | WHERE SALARY GLOB '2??' Znajduje wszystkie wartości, które zaczynają się od 2 i mają co najmniej 3 znaki |
5 | WHERE SALARY GLOB '*2' Znajduje wszystkie wartości kończące się na 2 |
6 | WHERE SALARY GLOB '?2*3' Znajduje wszystkie wartości, które mają 2 na drugiej pozycji i kończą się 3 |
7 | WHERE SALARY GLOB '2???3' Znajduje wszystkie wartości w liczbie pięciocyfrowej zaczynają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, w którym zostaną wyświetlone wszystkie rekordy z tabeli COMPANY, w której WIEK zaczyna się od 2.
sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '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 FIRMA, w której ADRES będzie zawierał łącznik (-) w tekście -
sqlite> SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*';
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