Comment implémenter une requête floue en PHP : 1. Utilisez le modèle de correspondance SQL, et l'opérateur doit utiliser LIKE ou NOT LIKE Lors de la correspondance, il n'est pas sensible à la casse. 2. Utilisez le modèle de correspondance d'expression régulière, et. son expression régulière La formule apparaît n'importe où dans le champ correspondant.
[Recommandations d'apprentissage associées : programmation php (vidéo)]
Implémentation PHP de flou Méthode de requête :
Méthode 1 : modèle de correspondance SQL
1. Utilisez le modèle de correspondance SQL =
ou !=
ne peut pas être utilisé. Utilisez plutôt l'opérateur LIKE ou NOT LIKE ;
2. En utilisant le mode de correspondance SQL, MYSQL fournit 2 types de caractères génériques.
%
représente n'importe quel nombre de caractères (y compris 0)
_
représente n'importe quel caractère unique
3. Utilisez le mode de correspondance SQL. Si le format de correspondance ne contient aucun des deux caractères génériques ci-dessus, l'effet de requête est équivalent à = ou ! =
4. Utilisez le modèle de correspondance SQL Lors de la correspondance, il est insensible à la casse
#查询用户名以某个字符开头的用户 #查询用户名以字符'l'开头的用户: l% SELECT * FROM user WHERE username LIKE 'l%'; #查询用户名以某个字符结尾的用户 #查询用户名以字符'e'结尾的用户:e% SELECT * FROM user WHERE username LIKE 'e%'; #查询用户名包含某个字符的用户 #查询用户名包含字符'o'的用户:%o% SELECT * FROM user WHERE username LIKE '%o%'; #查询包含三个字符的用户 SELECT * FROM user WHERE username LIKE '___'; #查询用户名第二个字符为o的用户:_o% SELECT * FROM user WHERE username LIKE '_o%';
Méthode 2 : modèle de correspondance d'expression régulière
caractère générique. (Expression régulière)
.
correspond à n'importe quel caractère
*
correspond à 0 ou plusieurs caractères avant que
x*
signifie correspond à n'importe quel nombre de x caractères
[..] Correspond à n'importe quel caractère entre parenthèses
[abc] Correspond aux caractères ab ou c
[a-z] Correspond à n'importe quelle lettre
[0-9] Correspond à n'importe quel chiffre
[0- 9]* Correspond à n'importe quel chiffre de n'importe quel nombre
[a-z]* Correspond à n'importe quel nombre de lettres
^
représente un certain caractère Ou le début d'une chaîne
^a
signifie qu'il commence par la lettre a
$
signifie qu'il se termine par un certain caractère ou une certaine chaîne
s$
signifie qu'il se termine par la lettre s
Les opérateurs utilisés pour utiliser les modèles de correspondance d'expressions régulières sont :
REGEXP
ou NOT REGEXP
(RLIKE ou NOT RLIKE)
Remarque : les modèles de correspondance d'expressions régulières, c'est régulier l'expression apparaît n'importe où dans le champ correspondant,
son motif sera mis en correspondance, et il n'est pas nécessaire de mettre un caractère générique des deux côtés pour le faire correspondre
Si seulement le caractère générique . est utilisé pour correspondre, en supposant N, alors le modèle de correspondance indique qu'il est supérieur ou égal à N
Comment comprendre la phrase ci-dessus ?
signifie
... Correspond aux données supérieures ou égales à 3 caractères
.... Correspond aux données supérieures ou égales à 4 caractères
#Requête des utilisateurs dont le nom d'utilisateur commence par le caractère l : ^l;
#Méthode d'écriture d'expressions régulières
SELECT * FROM user WHERE username REGEXP '^l'; #sql匹配模式写法: SELECT * FROM user WHERE username LIKE 'l%'; #查询用户名正好是三个字符的用户:^...$; #sql匹配模式写法: SELECT * FROM user WHERE username LIKE '___'; #正则表达式写法 SELECT * FROM user WHERE username REGEXP '^...$';
Recommandations associées : Cours vidéo de programmation
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!