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 :
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 :
---------- -- --- ----- ---------- ---------- ----------
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 :
Cela produira les résultats suivants :
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
4 Marc 25 Rich-Mond 65000.0
6 Kim 22 Hall Sud 45000.0