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!