English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Préfixe GLOB SQLite

SQLite GLOBopérateurs sont utilisés pour utiliser des caractères comodules pour faire correspondre des valeurs de texte avec des motifs. Si l'expression de recherche peut correspondre à l'expression de motif, l'opérateur GLOB renverra true, c'est-à-dire1. Contrairement à l'opérateur LIKE, GLOB distingue les majuscules et les minuscules et suit la syntaxe UNIX pour spécifier les caractères comodules suivants.

  • l'étoile (*)*

  • le point d'interrogation (?)

l'étoile (*)*représente zéro ou plusieurs chiffres ou caractères. Le point d'interrogation (?) représente un seul chiffre ou caractère.

syntaxe

Voici la syntaxe de base*et?.

SELECT FROM table_name WHERE column GLOB 'XXXX'*'
ou 
SELECT FROM table_name WHERE column GLOB ''*XXXX*'
ou  
SELECT FROM table_name WHERE column GLOB 'XXXX?'
ou  
SELECT FROM table_name WHERE column GLOB '?XXXX'
ou  
SELECT FROM table_name WHERE column GLOB '?XXXX?'
ou  
SELECT FROM table_name WHERE column GLOB '????'

Vous pouvez combiner plusieurs conditions en utilisant les opérateurs AND ou OR. Ici, XXXX peut être n'importe quel chiffre ou chaîne de caractères.

exemples en ligne

Le tableau suivant présente de nombreux exemples où la clause LIKE de la partie WHERE contient des*'et' et les opérateurs '?'

numérodéclaration et explication
1

WHERE SALARY GLOB '200*'

chercher ceux qui commencent par2commençant par 00

2

WHERE SALARY GLOB '*200*'

chercher n'importe quelle position contenant2les valeurs 00

3

WHERE SALARY GLOB '?00*'

chercher ceux qui ont 00 aux deuxième et troisième positions

4

WHERE SALARY GLOB '2??'

chercher ceux qui commencent par2commençant et d'une longueur d'au moins3n'importe quel caractère

5

WHERE SALARY GLOB '*2'

chercher ceux qui commencent par2terminant par n'importe quelle valeur

6

WHERE SALARY GLOB '?2*3'

chercher le deuxième caractère contenant2et3terminant par n'importe quelle valeur

7

WHERE SALARY GLOB '2???3'

chercher ceux qui commencent par2et3terminant par un nombre à cinq chiffres

Considérons un exemple réel avec la table COMPANY contenant 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 par2de début.

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ù l'ADDRESS contient des traits de liaison (-)-

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