Maison > base de données > tutoriel mysql > Comment rechercher efficacement des valeurs séparées par des virgules dans MySQL sans utiliser de relations entre tables ?

Comment rechercher efficacement des valeurs séparées par des virgules dans MySQL sans utiliser de relations entre tables ?

Patricia Arquette
Libérer: 2024-12-25 01:06:14
original
554 Les gens l'ont consulté

How to Efficiently Search Comma-Separated Values in MySQL Without Using Table Relationships?

Recherche efficace de valeurs séparées par des virgules dans la base de données MySQL

Lorsque vous travaillez avec des tables de données contenant des valeurs séparées par des virgules, il est possible de trouver des correspondances spécifiques être une tâche difficile. Dans ce cas, vous disposez de deux tables : clients (contenant les adresses e-mail) et imap_emails (où le champ à contient les adresses e-mail séparées par des virgules). Vous devez effectuer une recherche efficace dans la table imap_emails en fonction des adresses e-mail de la table clients.

Au lieu d'utiliser une condition LIKE, vous pouvez utiliser la fonction FIND_IN_SET pour effectuer une recherche plus ciblée. Cette fonction vous permet de vérifier si une valeur spécifique est trouvée dans une chaîne séparée par des virgules.

Solution :

La requête suivante montre comment vous pouvez utiliser FIND_IN_SET pour une utilisation efficace recherche :

SELECT *
FROM imap_emails
INNER JOIN customers
ON FIND_IN_SET(customers.email, imap_emails.to) > 0
Copier après la connexion

Cette requête effectue une jointure interne entre les deux tables, faisant correspondre les lignes dans lesquelles l'e-mail du client est présent le champ séparé par des virgules en de la table imap_emails. En utilisant FIND_IN_SET au lieu de LIKE, vous améliorez l'efficacité de la recherche et évitez les faux positifs.

Considérations supplémentaires :

Dans votre question, vous avez mentionné que vous ne pouvez pas utiliser de relations entre les tableaux. Cependant, si vous avez la possibilité d'établir une relation (par exemple en utilisant des clés étrangères), cela améliorerait considérablement l'intégrité des données et les performances de vos requêtes de recherche.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal