Maison > base de données > tutoriel mysql > Comment rechercher efficacement des adresses e-mail séparées par des virgules dans MySQL ?

Comment rechercher efficacement des adresses e-mail séparées par des virgules dans MySQL ?

Mary-Kate Olsen
Libérer: 2024-12-09 08:06:07
original
874 Les gens l'ont consulté

How to Efficiently Search Comma-Separated Email Addresses in MySQL?

Recherche d'e-mails avec des valeurs séparées par des virgules dans MySQL

Lorsque vous travaillez avec des tables MySQL contenant des valeurs séparées par des virgules (CSV), recherchez des données peut être un défi. Par exemple, si vous disposez d'un tableau avec des adresses e-mail stockées au format CSV, vous devrez peut-être l'interroger en fonction d'une adresse e-mail spécifique.

Question :

Une base de données se compose de deux tableaux : "clients" (contenant les adresses e-mail des clients) et "imap_emails" (contenant les champs "à" et "de" avec des valeurs CSV). Le but est de récupérer les emails de la table "clients" et de les rechercher dans les champs "à" et "de" de la table "imap_emails".

Solution utilisant FIND_IN_SET :

Un moyen efficace d'effectuer une telle recherche consiste à utiliser la fonction FIND_IN_SET. Cette fonction renvoie la position d'une chaîne spécifiée dans une liste séparée par des virgules. En le combinant avec une jointure, vous pouvez obtenir le résultat souhaité.

Exemple de requête :

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 "imap_emails" et "clients" basées sur la condition que l'adresse e-mail du client existe dans le champ "à" de la table "imap_emails" (telle que déterminée par FIND_IN_SET).

Remarques :

  • La requête ci-dessus renverra tous les e-mails contenant l'adresse e-mail du client spécifié dans le champ « à » ou « de » champ. Si vous souhaitez affiner la recherche à des champs spécifiques, vous pouvez modifier la condition de jointure en conséquence.
  • FIND_IN_SET peut également être utilisé pour des recherches plus complexes, telles que la recherche de plusieurs adresses e-mail dans une liste séparée par des virgules. Reportez-vous à la documentation MySQL pour plus d'informations.

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