Comment implémenter une requête floue en php

怪我咯
Libérer: 2023-03-13 16:50:02
original
3948 Les gens l'ont consulté

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%';
Copier après la connexion

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 '^...$';
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!