requête floue de correspondance régulière mysql pour un certain champ
Lorsque nous interrogeons un certain champ, parfois nous seulement si nous voulons faire correspondre une certaine donnée, par exemple, si nous voulons interroger tous les mots-clés de cet article pour voir si un certain mot-clé existe, nous devons souvent faire la correspondance. Expliquons comment faire correspondre et interroger une certaine valeur de mot-clé
Requête floue SQL La syntaxe est
"SELECT column FROM table WHERE column LIKE ';pattern';".
SQL propose quatre modes de correspondance :
1 % représente 0 caractère ou plus. L'instruction suivante :
SELECT * FROM user WHERE name LIKE ';%三%';
sélectionnera tous les noms contenant "三", tels que "Zhang San", "Chat à trois pattes", " Tang Sanzang", etc. Découvrez ;
2. _ représente n'importe quel personnage. Instruction :
SELECT * FROM user WHERE name LIKE ';_三_';
Trouver uniquement "Tang Sanzang" dont le nom comporte trois caractères et celui du milieu est "三"
SELECT * FROM user WHERE ; nom LIKE ';三__';
Recherchez uniquement "chat à trois pattes" dont le nom comporte trois caractères et le premier caractère est "三";
3. entre parenthèses (semblable à une expression régulière). Instruction :
SELECT * FROM user WHERE name LIKE ';[张李王]三';
trouvera "Zhang San", "Li San", "Wang San" (au lieu de "Zhang Li Wang San" ");
Si [ ] contient une série de caractères (01234, abcde, etc.), il peut être abrégé en "0-4", "a-e"
SELECT * FROM utilisateur WHERE nom LIKE '; Old[1-9]';
trouvera "old1", "old2",...,"old9";
Si vous souhaitez trouver le caractère "-", veuillez le mettre en premier : ' ;张三[-1-9]';
4. [^ ] représente un seul caractère non répertorié entre parenthèses. Déclaration :
SELECT * FROM user WHERE name LIKE ';[^Zhang Liwang]三';
trouvera "Zhao San" et "Sun" qui ne sont pas surnommés "Zhang", "Li" et "Wang " "Trois" et ainsi de suite ;
SELECT * FROM user WHERE name LIKE ';老[^1-4]';
exclura "old 1" à "old 4" pour trouver "old 5", "vieux 6", ..., "Vieux 9".
! La dernière chose est le point !
En raison des caractères génériques, notre requête pour les caractères spéciaux "%", "_", "[" et "';" ne peut pas être exécutée normalement. Cependant, les caractères spéciaux entourés de "[ ]" peuvent être interrogés normalement. Sur cette base, nous écrivons la fonction suivante :
function sqlencode(str)
str=replace(str,"';","';';")
str=replace(str ," [","[[]") ';Cette phrase doit venir en premier
str=replace(str,"_","[_]")
str=replace(str,"%", "[%]")
sqlencode=str
end function
Tutoriel recommandé :
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!