Recherche de données MySQL avec des valeurs séparées par des virgules
Dans certains scénarios, les bases de données peuvent contenir des valeurs séparées par des virgules dans les colonnes, comme dans le cas des emails stockés dans le champ "à" d'une table. Lors d'une recherche sur de telles données, il est souvent nécessaire de trouver des valeurs spécifiques dans la liste séparée par des virgules.
Une approche pour résoudre ce problème consiste à utiliser la fonction FIND_IN_SET. Cette fonction renvoie la position d'une sous-chaîne spécifiée dans une chaîne. Dans le cadre de la recherche d'e-mails, nous pouvons utiliser FIND_IN_SET pour vérifier si l'adresse e-mail d'un client correspond à l'une des valeurs du champ « à » d'un e-mail.
Considérons un clients table avec une colonne email et une table imap_emails avec un Colonne à contenant des adresses e-mail séparées par des virgules. La requête suivante montre comment rechercher des e-mails en fonction des adresses e-mail des clients à l'aide de FIND_IN_SET :
SELECT * FROM imap_emails INNER JOIN customers ON FIND_IN_SET(customers.email, imap_emails.to) > 0;
Cette requête renvoie toutes les lignes de la table imap_emails où se trouve l'adresse e-mail du client. dans le champ « à ». Cependant, il est important de noter qu'il ne prend pas en compte si l'adresse e-mail apparaît plusieurs fois. Si cela vous pose problème, vous devrez peut-être modifier la requête en conséquence.
En utilisant la fonction FIND_IN_SET, vous pouvez rechercher efficacement des valeurs dans des données séparées par des virgules, fournissant ainsi un mécanisme flexible et efficace pour interroger de telles structures de données. dans MySQL.
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!