Maison >développement back-end >tutoriel php >Comment implémenter une requête floue en PHP
Cet article présente principalement la méthode d'implémentation des requêtes floues en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Requête de modèle
1. Modèle de correspondance SQL
2. Modèle de correspondance d'expression régulière (généralement non recommandé)
Mode de correspondance SQL
1 Lorsque vous utilisez le mode de correspondance SQL, vous ne pouvez pas utiliser l'opérateur = ou ! =, 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 pas ce qui précède. L'effet de requête de l'un des deux caractères génériques est équivalent à = ou ! =
4. Utilisez le mode de correspondance SQL, lors de la correspondance, il n'est pas sensible à 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%';
Modèle de correspondance d'expression régulière
Caractère générique (expression régulière)
Faites correspondre n'importe quel caractère
* Faites correspondre 0 ou plus dans les caractères qui le précèdent.
x* signifie faire correspondre n'importe quel nombre de x caractères
[..] Faire correspondre n'importe quel caractère entre parenthèses
[abc] Faire correspondre les caractères ab ou c
[a-z] Correspond à n'importe quel lettre
[0-9] Correspond à n'importe quel nombre
[0-9]* Correspond à n'importe quel nombre de n'importe quel nombre
[a-z]* Correspond à n'importe quel nombre de lettres
^ signifie commencer par un certain caractère ou chaîne
^a signifie commencer par la lettre a
$ signifie se terminer par un certain caractère ou chaîne
s$ signifie commencer par la lettre a s se termine par
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 : modèles de correspondance d'expressions régulières, l'expression régulière apparaît n'importe où dans le champ correspondant.
Le motif sera mis en correspondance. Il n'est pas nécessaire de mettre un caractère générique des deux côtés pour le faire correspondre
Si seul le caractère générique est utilisé pour . match, 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 le nom d'utilisateur avec le caractère l Utilisateurs commençant par : ^l;
#Écriture d'expression régulière
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 '^...$';
Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j’espère qu’il pourra aider l’apprentissage de chacun.
Recommandations associées :
phpExplication détaillée et exemples d'extraction de fonction de traitement de tableau
Solution au problème de l'impossibilité de se connecter à l'arrière-plan PHP magento
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!