Maison > Article > base de données > Qu’est-ce qu’une instruction de requête floue MySQL ?
Qu'est-ce qu'une instruction de requête floue MySQL ?
L'instruction de requête floue est la suivante : "SELECT field FROM table WHERE certain field Like condition".
mysql propose quatre modes de correspondance :
1 % représente 0 caractère ou plus.
La déclaration suivante :
SELECT * FROM user WHERE name LIKE ';%三%';
changera le nom en "Zhang San", "Sanjiao " "Chat", "Tang Sanzang", etc. Découvrez tous les caractères avec "trois" ;
2. _ représente n'importe quel caractère unique. Déclaration :
SELECT * FROM user WHERE name LIKE ';_三_';
Recherchez uniquement "Tang Sanzang" pour que le nom comporte trois caractères et que le caractère du milieu soit " Trois";
SELECT * FROM user WHERE name LIKE ';三__';
Trouver uniquement "chat à trois pattes" pour que le nom comporte trois caractères et que le premier caractère soit " "Trois" ;
3. [ ] représente l'un des caractères répertoriés entre parenthèses (similaire aux expressions régulières).
Déclaration :
SELECT * FROM user WHERE name LIKE ';[张李王]三';
trouvera "Zhang San", "李王" "Trois", "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 user WHERE name LIKE ';老[1-9]';
trouvera "old 1", "old 2",.. ., "老9";
Si vous recherchez le caractère "-", veuillez le mettre en premier : ';Zhang San[-1-9]';
4, [^ ] signifie un seul caractère non répertorié entre parenthèses.
Déclaration :
SELECT * FROM utilisateur WHERE nom LIKE ';[^ 张李王]三'; "Zhao San", "Sun San" de "Li", " Wang", etc.;
SELECT * FROM user WHERE name LIKE ';老[^1-4]';
exclura "Old 1" à "Old 4" pour trouver " Ancien 5", "Ancien 6", ..., "Ancien 9".
La dernière chose est la clé !
En raison des caractères génériques, nos instructions de requête pour les caractères spéciaux "%", "_", "[", "';" ne peuvent pas être implémentées normalement, et les caractères spéciaux peuvent être placés entre "[ ]" être interrogé normalement. Sur cette base, nous avons écrit la fonction suivante :
function sqlencode(str) str=replace(str,"';","';';") str=replace(str,"[","[[]") ';此句一定要在最先 str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function
Tutoriel recommandé : "
Tutoriel MySQLCe 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!