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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-11-26 02:15:10949parcourir

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

Faire correspondre plusieurs mots dans des enregistrements MySQL à l'aide de LIKE ou REGEXP

Lorsque vous utilisez l'opérateur LIKE pour rechercher des enregistrements contenant des mots spécifiques, vous pouvez rencontrer difficultés si les mots apparaissent à des endroits différents dans le champ. Pour résoudre ce problème, envisagez d'utiliser l'opérateur REGEXP.

Par exemple, disons que vous avez une table nommée « table » avec un champ appelé « nom » qui contient la valeur « Stylus Photo 2100 ». En utilisant l'opérateur LIKE, la requête suivante :

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

ne renverra aucun résultat. En effet, l'opérateur LIKE recherche une correspondance exacte de la chaîne spécifiée.

Pour rechercher des enregistrements contenant les mots « Stylus » et « 2100 » dans n'importe quel ordre, vous pouvez utiliser l'opérateur REGEXP, comme indiqué dans cette requête :

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

Cette requête utilisera une expression régulière pour rechercher des enregistrements dont le champ « nom » contient le mot « Stylus » suivi d'un nombre quelconque de caractères (indiqué par le '.'), puis le mot « 2100 ».

Vous pouvez également utiliser l'opérateur LIKE plusieurs fois, comme indiqué dans cette requête :

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

Ceci la requête renverra les enregistrements dont le champ « nom » contient le mot « Stylet » et le mot « 2100 », quelle que soit leur position.

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