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