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
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 :
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!