SQLite - Clause GLOB
SQLite GLOBL'opérateur est utilisé pour faire correspondre uniquement les valeurs de texte à un modèle à l'aide de caractères génériques. Si l'expression de recherche peut être mise en correspondance avec l'expression de modèle, l'opérateur GLOB retournera true, qui est 1. Contrairement à l'opérateur LIKE, GLOB est sensible à la casse et il suit la syntaxe d'UNIX pour spécifier les caractères génériques suivants.
- Le signe astérisque (*)
- Le point d'interrogation (?)
Le signe astérisque (*) représente zéro ou plusieurs nombres ou caractères. Le point d'interrogation (?) Représente un seul nombre ou caractère.
Syntaxe
Voici la syntaxe de base de * et ?.
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 '????'
Vous pouvez combiner Nnombre de conditions utilisant les opérateurs AND ou OR. Ici, XXXX peut être n'importe quelle valeur numérique ou chaîne.
Exemple
Le tableau suivant répertorie un certain nombre d'exemples montrant une partie WHERE ayant une clause LIKE différente avec '*' et '?' les opérateurs.
N ° Sr. | Déclaration et description |
---|---|
1 | WHERE SALARY GLOB '200*' Recherche toutes les valeurs commençant par 200 |
2 | WHERE SALARY GLOB '*200*' Recherche toutes les valeurs qui ont 200 dans n'importe quelle position |
3 | WHERE SALARY GLOB '?00*' Recherche toutes les valeurs qui ont 00 dans les deuxième et troisième positions |
4 | WHERE SALARY GLOB '2??' Recherche toutes les valeurs commençant par 2 et comportant au moins 3 caractères |
5 | WHERE SALARY GLOB '*2' Recherche toutes les valeurs qui se terminent par 2 |
6 | WHERE SALARY GLOB '?2*3' Recherche toutes les valeurs qui ont un 2 en deuxième position et se terminent par un 3 |
sept | WHERE SALARY GLOB '2???3' Recherche toutes les valeurs d'un nombre à cinq chiffres commençant par 2 et se terminant par 3 |
Prenons un exemple réel, considérons la table COMPANY avec les enregistrements suivants -
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
Voici un exemple qui affichera tous les enregistrements de la table COMPANY, où AGE commence par 2.
sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '2*';
Cela produira le résultat suivant.
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
Voici un exemple, qui affichera tous les enregistrements de la table COMPANY où ADDRESS aura un tiret (-) à l'intérieur du texte -
sqlite> SELECT * FROM COMPANY WHERE ADDRESS GLOB '*-*';
Cela produira le résultat suivant.
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
6 Kim 22 South-Hall 45000.0