Maison  >  Article  >  base de données  >  Instruction de requête floue SQL

Instruction de requête floue SQL

angryTom
angryTomoriginal
2020-02-06 10:50:5231720parcourir

Instruction de requête floue SQL

Instruction de requête floue SQL

La syntaxe générale de l'instruction floue est la suivante :

SELECT 字段 FROM 表 WHERE 某字段 Like 条件

À propos des conditions , SQL fournit Il existe quatre modes de correspondance :

1 % : représente 0 ou plusieurs caractères. Peut correspondre à des caractères de n'importe quel type et longueur. Dans certains cas, s'il s'agit de chinois, veuillez utiliser des signes de deux pour cent (%%) pour l'exprimer.

SELECT * FROM [user] WHERE u_name LIKE '%三%'

trouvera tous les enregistrements avec "trois" dans u_name comme "Zhang San", "Zhang Cat San", "Three-legged Cat", "Tang Sanzang", etc. De plus, si vous avez besoin de trouver des enregistrements contenant à la fois "三" et "cat" dans u_name, veuillez utiliser la condition et

SELECT * FROM [user] WHERE u_name LIKE '%三%' AND u_name LIKE '%猫%'

Si vous utilisez

SELECT * FROM [user] WHERE u_name LIKE '%三%猫%'

, vous pouvez rechercher pour "三级" Cat", mais la recherche de "Zhang Cat San" qui remplit les conditions est introuvable.

2. _ : représente n'importe quel caractère. Correspond à un seul caractère arbitraire. Il est souvent utilisé pour limiter la longueur des caractères des expressions :

 SELECT * FROM [user] WHERE u_name LIKE '_三_'

Recherchez uniquement "Tang Sanzang" pour que u_name soit composé de trois caractères et que le caractère du milieu soit "三". " ;

SELECT * FROM [user] WHERE u_name LIKE '三__';

Trouver uniquement "chat à trois pattes" dont le nom comporte trois caractères et le premier caractère est "三";

3. [ ] : représente l'un des caractères listés entre parenthèses (semblable à une expression régulière). Spécifiez un caractère, une chaîne ou une plage et exigez que l'objet correspondant soit l'un d'entre eux.

SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'

trouvera "Zhang San", "Li San", "Wang San" (au lieu de "Zhang Li Wang San"

comme [ ] If); il y a une série de caractères (01234, abcde, etc.), elle peut être abrégée en "0-4", "a-e"

SELECT * FROM [user] WHERE u_name LIKE '老[1-9]'

trouvera "old 1", "old 2" ,... ..., "老9";

4, [^] : Indique un seul caractère non répertorié entre parenthèses. Sa valeur est la même que celle de [], mais elle nécessite que l'objet correspondant soit un caractère autre que le caractère spécifié.

SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'

trouvera "Zhao San", "Sun San", etc. qui ne sont pas nommés "Zhang", "Li", "Wang"

SELECT * FROM [user] WHERE u_name LIKE '老[^1-4]';
 ; Exclura "Old 1" à "Old 4" et recherchera "Old 5", "Old 6",...



5 Lorsque le contenu de la requête contient des caractères génériques.

En raison des caractères génériques, notre instruction de requête pour les caractères spéciaux "%", "_" et "[" ne peut pas être implémentée normalement. Cependant, les caractères spéciaux peuvent être interrogés normalement s'ils sont placés entre "[ ]. ". Sur cette base, nous écrivons la fonction suivante :

function sqlencode(str)
str=replace(str,"[","[[]") '此句一定要在最前
str=replace(str,"_","[_]")
str=replace(str,"%","[%]")
sqlencode=str
end function

Avant l'interrogation, la chaîne à vérifier peut être traitée par cette fonction.

Le site Web PHP chinois propose un grand nombre de

tutoriels SQL gratuits, tout le monde est invité à apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn