Clause de type SQLite
L'opérateur LIKE de SQLite est utilisé pour faire correspondre les valeurs de texte dans les modèles spécifiés par des caractères génériques. L'opérateur LIKE renvoie vrai, qui vaut 1, si l'expression de recherche correspond à l'expression de modèle. Deux caractères génériques sont utilisés avec l'opérateur LIKE :
Signe de pourcentage (%)
Souligné (_)
Le signe pourcentage (%) représente zéro, un ou plusieurs chiffres ou caractères. Un trait de soulignement (_) représente un seul chiffre ou caractère. Ces symboles peuvent être utilisés en combinaison.
Syntaxe
La syntaxe de base de % et _ est la suivante :
WHERE colonne LIKE 'XXXX%'
ou
SELECT FROM table_name
WHERE colonne LIKE '%XXXX%'
ou
SELECT FROM table_name
WHERE colonne LIKE 'XXXX_ '
ou
SELECT FROM table_name
WHERE colonne LIKE '_XXXX'
ou
SELECT FROM table_name
WHERE colonne LIKE '_XXXX_ '
Vous pouvez combiner N quantités de conditions à l'aide des opérateurs AND ou OR. Ici, XXXX peut être n’importe quel nombre ou valeur de chaîne.
Exemples
Les exemples suivants illustrent les différences entre les clauses LIKE avec les opérateurs '%' et '_' :
语句 | 描述 |
---|---|
WHERE SALARY LIKE '200%' | 查找以 200 开头的任意值 |
WHERE SALARY LIKE '%200%' | 查找任意位置包含 200 的任意值 |
WHERE SALARY LIKE '_00%' | 查找第二位和第三位为 00 的任意值 |
WHERE SALARY LIKE '2_%_%' | 查找以 2 开头,且长度至少为 3 个字符的任意值 |
WHERE SALARY LIKE '%2' | 查找以 2 结尾的任意值 |
WHERE SALARY LIKE '_2%3' | 查找第二位为 2,且以 3 结尾的任意值 |
WHERE SALARY LIKE '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 COMPANY dont l'ÂGE commence par 2 :
Cela produira les résultats suivants :
2 " 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
6 Kim 22 Sud- Hall 45000.0