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!