SQLite - Cláusula GLOB

SQLite GLOBEl operador se usa para hacer coincidir solo valores de texto con un patrón usando comodines. Si la expresión de búsqueda puede coincidir con la expresión del patrón, el operador GLOB devolverá verdadero, que es 1. A diferencia del operador LIKE, GLOB distingue entre mayúsculas y minúsculas y sigue la sintaxis de UNIX para especificar los siguientes comodines.

  • El signo de asterisco (*)
  • El signo de interrogación (?)

El signo de asterisco (*) representa cero o varios números o caracteres. El signo de interrogación (?) Representa un solo número o carácter.

Sintaxis

A continuación se muestra la sintaxis básica de * y ?.

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 '????'

Puedes combinar Nnúmero de condiciones que utilizan operadores AND u OR. Aquí, XXXX podría ser cualquier valor numérico o de cadena.

Ejemplo

La siguiente tabla enumera una serie de ejemplos que muestran DONDE la parte tiene una cláusula LIKE diferente con '*' y '?' operadores.

No Señor. Declaración y descripción
1

WHERE SALARY GLOB '200*'

Encuentra cualquier valor que comience con 200

2

WHERE SALARY GLOB '*200*'

Encuentra cualquier valor que tenga 200 en cualquier posición

3

WHERE SALARY GLOB '?00*'

Encuentra cualquier valor que tenga 00 en la segunda y tercera posiciones

4

WHERE SALARY GLOB '2??'

Encuentra cualquier valor que comience con 2 y tenga al menos 3 caracteres de longitud

5

WHERE SALARY GLOB '*2'

Encuentra cualquier valor que termine en 2

6

WHERE SALARY GLOB '?2*3'

Encuentra cualquier valor que tenga un 2 en la segunda posición y termine con un 3

7

WHERE SALARY GLOB '2???3'

Encuentra cualquier valor en un número de cinco dígitos que comience con 2 y termine con 3

Tomemos un ejemplo real, considere la tabla EMPRESA con los siguientes 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 continuación se muestra un ejemplo, que mostrará todos los registros de la tabla EMPRESA, donde EDAD comienza con 2.

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

Esto producirá el siguiente 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 continuación se muestra un ejemplo, que mostrará todos los registros de la tabla EMPRESA donde DIRECCIÓN tendrá un guión (-) dentro del texto -

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

Esto producirá el siguiente resultado.

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