Tutoriel classi...SE CONNECTER
Tutoriel classique SQLite
auteur:php.cn  temps de mise à jour:2022-04-13 17:05:02

Clause SQLite Glob


L'opérateur GLOB de SQLite est une valeur de texte utilisée pour correspondre à un modèle spécifié par un caractère générique. Si l'expression de recherche correspond à l'expression de modèle, l'opérateur GLOB renvoie vrai, qui vaut 1. Contrairement à l'opérateur LIKE, GLOB est sensible à la casse et suit la syntaxe UNIX pour les caractères génériques suivants.

  • Étoile (*)

  • Point d'interrogation (?)

Étoile (*) représente zéro, un ou plusieurs chiffres ou caractères. Le point d'interrogation (?) représente un seul chiffre ou caractère. Ces symboles peuvent être utilisés en combinaison.

Syntaxe

* La syntaxe de base de ? est la suivante :

SELECT FROM table_name
WHERE colonne GLOB 'XXXX*'

ou

SELECT FROM nom_table
WHERE colonne GLOB '*XXXX*'

ou

SELECT FROM nom_table
OÙ colonne GLOB 'XXXX ? '

ou

SELECT FROM nom_table
WHERE colonne GLOB '?XXXX'

ou

SELECT FROM nom_table
WHERE colonne GLOB ' ?XXXX ?'

ou

SELECT FROM table_name
WHERE colonne GLOB '????'

Vous pouvez combiner N en utilisant les opérateurs AND ou OR conditions de quantité. Ici, XXXX peut être n’importe quel nombre ou valeur de chaîne.

Exemples

Les exemples suivants démontrent les différences entre les clauses GLOB avec les opérateurs '*' et '?' :

语句描述
WHERE SALARY GLOB '200*'查找以 200 开头的任意值
WHERE SALARY GLOB '*200*'查找任意位置包含 200 的任意值
WHERE SALARY GLOB '?00*'查找第二位和第三位为 00 的任意值
WHERE SALARY GLOB '2??'查找以 2 开头,且长度至少为 3 个字符的任意值
WHERE SALARY GLOB '*2'查找以 2 结尾的任意值
WHERE SALARY GLOB '?2*3'查找第二位为 2,且以 3 结尾的任意值
WHERE SALARY GLOB '2???3'查找长度为 5 位数,且以 2 开头以 3 结尾的任意值

Prenons un exemple pratique, en supposant que la table COMPANY contient les enregistrements suivants :

ID      “NAME   “AGE   “SALARY
---------- -- --- ----- ---------- ---------- ----------
1 Paul 32 Californie 20000.0
2 Allen 25 Texas 15000.0
3                                                                                                                                                                                      >5 David 27 Texas 85000.0.
6 Kim 22 South-Hall 45000.0
7 James          24                           10000.0 >
Ce qui suit est un exemple qui affiche tous les enregistrements de la table SOCIÉTÉ dont AGE commence par 2 :
sqlite> SELECT * FROM COMPANY WHERE AGE GLOB '2*';

Cela produira les résultats suivants :

ID                                                                                                                                                                                                                           ------  --------------  ---------
2 Allen       25          Texas        15000.0
3           Teddy        23          Norvège       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
Ce qui suit est un exemple qui affiche le texte ADDRESS dans la table COMPANY Tous les enregistrements contenant un trait d'union (-) :

sqlite> -*';
Cela produira les résultats suivants :

ID NOM ÂGE ADRESSE SALAIRE
--------------- -- --------- ----------- --- -------  --------------
4           Marc        25          Rich-Mond   65000.0
6           Kim          22          Hall Sud  45000.0