La « recherche floue » est un concept opposé à la « recherche précise ». Comme son nom l'indique, cela signifie que le système de recherche effectue automatiquement des recherches floues basées sur les synonymes des mots-clés saisis par l'utilisateur, obtenant ainsi plus de résultats de recherche. Les synonymes sont configurés par l'interface d'administration du système. Si vous configurez « ordinateur » et « ordinateur » comme synonymes et recherchez « ordinateur », les pages Web contenant « ordinateur » apparaîtront également dans les résultats de recherche. La recherche floue est également une recherche de synonymes. Les synonymes ici sont configurés par l'utilisateur via le « Dictionnaire des synonymes » dans la « Gestion de la recherche ». Lorsque l'utilisateur saisit un mot dans les synonymes à rechercher sur la page de recherche, tant que la case « Recherche floue » est cochée, toutes les informations sur les synonymes du mot-clé seront également récupérées.
L'éditeur suivant vous apportera une méthode d'implémentation de requête floue PHP (recommandée). L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur pour jeter un œil
Requête de modèle
Modèle de correspondance SQL
2. Expression régulièreModèle de correspondance (généralement déconseillé)
Modèle de correspondance SQL
Utiliser un modèle de correspondance SQL, impossible. utilisez 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. Utiliser le modèle de correspondance SQL, lors de la correspondance, 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%';
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 caractère ou plus avant
x* signifie correspond à n'importe quel nombre de x caractères
[..] Correspond à n'importe quel caractère entre parenthèses
[abc] Correspond à le caractère ab ou c
[a-z] Correspond à n'importe quelle 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
^ représente un caractère ou une chaîne Début
^a signifie qu'il commence par la lettre a
$ signifie qu'elle se termine par un certain caractère ou une certaine chaîne
s$ signifie qu'elle se termine par la lettre s
utiliser Les opérateurs utilisés dans le modèle de correspondance d'expression régulière sont :
REGEXP ou NOT REGEXP(RLIKE ou NOT RLIKE)
Remarque : Le modèle correspondant à l'expression régulière, l'expression régulière apparaît dans le champ correspondant À n'importe quelle position, le modèle de
correspondra, 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
utilise uniquement le caractère générique pour correspondre, en supposant que N, alors son modèle de correspondance représente , plus grand. 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;
#Ecriture 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 '^...$';
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!