La fonction de requête floue php+mysql est très importante pour que PHP fasse fonctionner la base de données. Cet article expliquera en détail ses connaissances associées.
Les instructions générales de requête floue sont les suivantes :
SELECT field FROM table WHERE certain field Like condition
Parmi eux, SQL propose quatre modes de correspondance pour les conditions :
1, % : représente 0 caractère ou plus. 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.
Par exemple, SELECT * FROM [user] WHERE u_name LIKE '%三%'
traitera u_name comme "Zhang San", "Zhang Cat San", "Chat à trois pattes", "Tang Sanzang" et ainsi de suite. Découvrez tous les enregistrements de "trois".
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 ' % cat%'
Si vous utilisez SELECT * FROM [user] WHERE u_name LIKE '%三%cat%'
Bien que vous puissiez rechercher "chat à trois pattes", vous ne pouvez pas rechercher "Zhang Cat San" qui remplit les conditions.
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 de l'expression :
Par exemple, SELECT * FROM [user] WHERE u_name LIKE '_三_'
Trouver uniquement. " "Tang Sanzang" tel que u_name ait trois caractères et le caractère du milieu est "三";
Un autre exemple est SELECT * FROM [user] WHERE u_name LIKE '三';
Trouver uniquement "trois- chat à pattes" De cette façon, le nom comporte trois caractères et le premier caractère est "三" ;
3, [ ] : représente l'un des caractères répertoriés entre parenthèses (similaire à
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.
Par exemple, SELECT * FROM [user] WHERE u_name LIKE '[张李王]三'
trouvera "Zhang San", "Li San", "Wang San" (au lieu de "Zhang Li Wang] "王三");
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 u_name LIKE 'Old[1-9]'
trouvera "Old 1", "Old 2",..., "Old 9"
4, [^; ] : signifie qu'il n'est pas entre parenthèses. Un seul caractère dans une colonne. 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é.
Par exemple, SELECT * FROM [user] WHERE u_name LIKE '[^张李王]三'
trouvera "Zhao San", "Sun San" etc.;
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 le caractère générique
en raison du caractère générique, nous interrogeons le caractère spécial
Des instructions telles que "% ", "_" et "[" ne peuvent pas être implémentés normalement, mais les caractères spéciaux peuvent être interrogés normalement s'ils sont entourés de "[ ]". Sur cette base, nous avons écrit les fonctions suivantes :
function sqlencode(str) str=replace(str,"[","[[]") '此句一定要在最前 str=replace(str,"_","[_]") str=replace(str,"%","[%]") sqlencode=str end function
Comment copier et déplacer des fichiers via PHP
À propos des effets jQuery - liés au masquage et à l'affichage Connaissances
Points de connaissances connexes sur les valeurs SQL NULL
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!