Maison >développement back-end >tutoriel php >Comment puis-je rechercher efficacement des e-mails dans les valeurs séparées par des virgules de MySQL ?
Recherche dans MySQL de valeurs séparées par des virgules
Dans les scénarios où vous avez des données stockées dans des tables MySQL sous forme de valeurs séparées par des virgules (CSV), trouver des événements spécifiques peut poser un défi. Cette question explore une situation dans laquelle les e-mails sont stockés dans une table avec plusieurs destinataires. La tâche à accomplir consiste à rechercher des e-mails en fonction de l'expéditeur ou du destinataire à l'aide de la table imap_emails, qui contient les informations sur l'expéditeur et le destinataire au format CSV.
Pour cette recherche, l'utilisation d'une simple condition LIKE peut ne pas suffire. Au lieu de cela, la question suggère d'utiliser une approche plus raffinée, telle que FIND_IN_SET ou une fonction similaire. Cet article examinera une solution alternative pour relever ce défi.
Une méthode efficace consiste à utiliser la fonction FIND_IN_SET pour effectuer une jointure entre les tables clients et imap_emails. Cette approche vous permet de rechercher des valeurs spécifiques dans les CSV stockés dans la table imap_emails.
Exemple de code illustrant cette approche :
SELECT * FROM imap_emails INNER JOIN customers ON FIND_IN_SET(customers.email, imap_emails.to) > 0
Cette requête renverra toutes les lignes de la table imap_emails où la colonne email de la table clients se trouve dans la colonne séparée par des virgules de l'imap_emails table.
Notez que l'exemple vérifie uniquement une correspondance dans la colonne to. En fonction du comportement souhaité, vous pouvez modifier la requête pour rechercher des correspondances dans la colonne De ou dans les deux. Cette flexibilité offre une adaptabilité aux exigences de recherche spécifiques.
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!