SQLite - clausola GLOB

SQLite GLOBL'operatore viene utilizzato per confrontare solo i valori di testo con un modello utilizzando caratteri jolly. Se l'espressione di ricerca può essere abbinata all'espressione modello, l'operatore GLOB restituirà true, che è 1. A differenza dell'operatore LIKE, GLOB distingue tra maiuscole e minuscole e segue la sintassi di UNIX per specificare i seguenti caratteri jolly.

  • Il segno dell'asterisco (*)
  • Il punto interrogativo (?)

Il segno asterisco (*) rappresenta zero o più numeri o caratteri. Il punto interrogativo (?) Rappresenta un singolo numero o carattere.

Sintassi

Di seguito è riportata la sintassi di base di * 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 '????'

Puoi combinare Nnumero di condizioni che utilizzano operatori AND o OR. Qui, XXXX potrebbe essere qualsiasi valore numerico o stringa.

Esempio

La tabella seguente elenca una serie di esempi che mostrano la parte WHERE con una clausola LIKE diversa con '*' e '?' operatori.

Sr.No. Dichiarazione e descrizione
1

WHERE SALARY GLOB '200*'

Trova tutti i valori che iniziano con 200

2

WHERE SALARY GLOB '*200*'

Trova tutti i valori che hanno 200 in qualsiasi posizione

3

WHERE SALARY GLOB '?00*'

Trova tutti i valori che hanno 00 nella seconda e terza posizione

4

WHERE SALARY GLOB '2??'

Trova tutti i valori che iniziano con 2 e sono lunghi almeno 3 caratteri

5

WHERE SALARY GLOB '*2'

Trova tutti i valori che terminano con 2

6

WHERE SALARY GLOB '?2*3'

Trova tutti i valori che hanno un 2 nella seconda posizione e terminano con un 3

7

WHERE SALARY GLOB '2???3'

Trova tutti i valori in un numero di cinque cifre che iniziano con 2 e finiscono con 3

Facciamo un esempio reale, consideriamo la tabella AZIENDA con i seguenti record:

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

Di seguito è riportato un esempio, che visualizzerà tutti i record dalla tabella AZIENDA, dove AGE inizia con 2.

sqlite> SELECT * FROM COMPANY WHERE AGE  GLOB '2*';

Questo produrrà il seguente risultato.

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

Di seguito è riportato un esempio, che visualizzerà tutti i record dalla tabella AZIENDA dove INDIRIZZO avrà un trattino (-) all'interno del testo -

sqlite> SELECT * FROM COMPANY WHERE ADDRESS  GLOB '*-*';

Questo produrrà il seguente risultato.

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