Maison >base de données >tutoriel mysql >Comment puis-je rechercher efficacement plusieurs mots dans un seul enregistrement de base de données dans MySQL ?

Comment puis-je rechercher efficacement plusieurs mots dans un seul enregistrement de base de données dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-05 04:11:10985parcourir

How Can I Efficiently Search for Multiple Words Within a Single Database Record in MySQL?

Faire correspondre plusieurs mots dans un enregistrement à l'aide de MySQL SELECT

Dans un scénario où un champ contient plusieurs mots, utiliser une requête LIKE pour rechercher ces mots individuellement peuvent donner des résultats incohérents. Cela peut être rencontré lors de la recherche de combinaisons ou de permutations spécifiques de mots dans un seul enregistrement.

Pour surmonter ce défi, MySQL fournit l'opérateur REGEXP, qui permet la création d'expressions régulières pour une correspondance plus précise. Prenons l'exemple fourni dans la requête :

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

Cette requête ne donne aucun résultat car les mots « Stylus » et « 2100 » ne sont pas adjacents dans l'enregistrement. Pour récupérer l'enregistrement souhaité, l'opérateur REGEXP peut être utilisé :

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

L'opérateur point (.) correspond à n'importe quel caractère, et l'opérateur plus ( ) garantit que "2100" suit "Stylus" dans le bon sens. order.

De plus, une combinaison de requêtes LIKE peut être utilisée pour obtenir le même résultat :

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

Cette approche exploite deux requêtes LIKE distinctes pour vérifier la présence de « Stylus » et de « 2100 » n'importe où dans l'enregistrement.

En utilisant soit REGEXP, soit une combinaison de requêtes LIKE, il est possible de rechercher efficacement plusieurs mots dans un seul enregistrement, garantissant un résultat de recherche plus précis et pertinent.

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