SQLite - Cláusula GLOB
SQLite GLOBoperador é usado para corresponder apenas valores de texto a um padrão usando curingas. Se a expressão de pesquisa puder ser correspondida à expressão padrão, o operador GLOB retornará verdadeiro, que é 1. Ao contrário do operador LIKE, GLOB diferencia maiúsculas de minúsculas e segue a sintaxe do UNIX para especificar OS seguintes curingas.
- O sinal de asterisco (*)
- O ponto de interrogação (?)
O sinal de asterisco (*) representa zero ou vários números ou caracteres. O ponto de interrogação (?) Representa um único número ou caractere.
Sintaxe
A seguir está a sintaxe básica de * e ?.
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 '????'
Você pode combinar Nnúmero de condições usando operadores AND ou OR. Aqui, XXXX pode ser qualquer valor numérico ou string.
Exemplo
A tabela a seguir lista vários exemplos que mostram a parte WHERE com cláusulas LIKE diferentes com '*' e '?' operadores.
Sr. Não. | Declaração e descrição |
---|---|
1 | WHERE SALARY GLOB '200*' Encontra todos os valores que começam com 200 |
2 | WHERE SALARY GLOB '*200*' Encontra qualquer valor que tenha 200 em qualquer posição |
3 | WHERE SALARY GLOB '?00*' Encontra qualquer valor que tenha 00 na segunda e terceira posições |
4 | WHERE SALARY GLOB '2??' Encontra qualquer valor que comece com 2 e tenha pelo menos 3 caracteres de comprimento |
5 | WHERE SALARY GLOB '*2' Encontra todos os valores que terminam com 2 |
6 | WHERE SALARY GLOB '?2*3' Encontra qualquer valor que tenha um 2 na segunda posição e termine com um 3 |
7 | WHERE SALARY GLOB '2???3' Encontra qualquer valor em um número de cinco dígitos que começa com 2 e termina com 3 |
Tomemos um exemplo real, considere a tabela COMPANY com os seguintes registros -
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
A seguir está um exemplo, que exibirá todos os registros da tabela COMPANY, onde AGE começa com 2.
sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '2*';
Isso produzirá o seguinte resultado.
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
A seguir está um exemplo, que irá exibir todos os registros da tabela COMPANY onde ADDRESS terá um hífen (-) dentro do texto -
sqlite> SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*';
Isso produzirá o seguinte resultado.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
6 Kim 22 South-Hall 45000.0