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