Lorsque nous interrogeons un certain champ, nous souhaitons parfois uniquement 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 élément de données est défini. le mot-clé existe, nous avons souvent besoin de correspondance, expliquons comment faire correspondre et interroger une certaine valeur de mot-clé
La syntaxe de la requête floue SQL 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 ';%三%';
changera le nom en "Zhang San", "Chat à trois pattes", "Tang Sanzang ", etc. Recherchez tous les caractères avec "trois" ;
2. _ représente n'importe quel caractère unique. Déclaration :
SELECT * FROM user WHERE name LIKE ';_三_';
Trouver uniquement "Tang Sanzang" dont le nom comporte trois caractères et le caractère du milieu est "三" ;
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 "三" ;
3. [ ] représente l'un des caractères répertoriés entre parenthèses (semblable à une expression régulière). Déclaration :
SELECT * FROM user WHERE name LIKE ';[张李王]三';
trouvera "Zhang San", "Li San", "Wang San" (et non "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", ..., "old 9"; > Si vous recherchez 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 "" dont le nom de famille n'est pas "Zhang", "Li" ou "Wang " Zhao San", "Sun San", etc. ;
SELECT * FROM user WHERE name LIKE ';老[^1-4]';
exclura "老1" pour "老4" "Recherchez "Old 5", "Old 6",..., "Old 9".
! La dernière chose est le point !
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 é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
fin de fonction
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!