Maison  >  Article  >  base de données  >  Comment faire correspondre efficacement plusieurs mots dans MySQL à l'aide de LIKE ou REGEXP ?

Comment faire correspondre efficacement plusieurs mots dans MySQL à l'aide de LIKE ou REGEXP ?

DDD
DDDoriginal
2024-11-25 13:09:15212parcourir

How to Efficiently Match Multiple Words in MySQL Using LIKE or REGEXP?

Correspondance de plusieurs mots dans MySQL à l'aide de SELECT LIKE ou REGEXP

L'instruction SELECT dans SQL permet de filtrer les enregistrements en fonction de critères spécifiques. Lorsque vous traitez des données comportant plusieurs mots, telles que des noms de produits ou des descriptions, il peut être difficile de trouver des enregistrements correspondant à plusieurs mots.

LIKE vs. REGEXP

MySQL fournit deux opérateurs qui peuvent être utilisés pour la correspondance avec des caractères génériques : LIKE et REGEXP. LIKE utilise le caractère générique % pour faire correspondre zéro ou plusieurs caractères, tandis que REGEXP permet une correspondance d'expressions régulières plus complexe.

Faire correspondre plusieurs mots avec LIKE

Dans l'exemple donné, la requête SELECT nom FROM table WHERE nom LIKE '%Stylus 2100%' ne renvoie aucun résultat car elle ne correspond pas aux deux mots de l'enregistrement. Pour obtenir une correspondance de plusieurs mots avec LIKE, vous pouvez utiliser l'approche suivante :

SELECT name FROM `table` WHERE `name` LIKE '%Stylus%' AND `name` LIKE '%2100%'

Cette requête sélectionnera les enregistrements contenant à la fois « Stylus » et « 2100 » dans n'importe quel ordre.

Faire correspondre plusieurs mots avec REGEXP

REGEXP offre un moyen plus puissant de faire correspondre plusieurs mots en utilisant des expressions régulières. La requête suivante utilise une expression régulière pour faire correspondre les enregistrements contenant « Stylus » suivi d'un ou plusieurs caractères suivis de « 2100 » :

SELECT name FROM `table` WHERE `name` REGEXP 'Stylus.+2100'

Cette requête renverra l'enregistrement avec la valeur « Stylus Photo 2100 » .

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!

Déclaration:
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