par
pierreC » 05 juil. 2009, 18:32
Merci pour vos réponses,
Ces données proviennent d'une base non fiable, par exemple des personnes répondant à des sondage, et 1 jour ils vont fournir un mail avec un prenom et leur age, et parfois avec le même mail fournir le prénom de leur femme avec l'age de leur femme.
Avec cette base je dois faire du mailling, et donc pour récupérer les mails de manière unique, avec l'age minimu, et le prénom associé à cette ligne.
Y'a peut etre des idées sur cette page :
http://dev.mysql.com/doc/refman/5.0/fr/ ... p-row.html
mais malheuresement il est ecrit "mais en utilisant une astuce inefficace que j'appelle ``astuce du MAX-CONCAT'' sans donner l'explication du pourquoi "inefficace"
Dans mon ca ca donnerai une requete comme cela :
SELECT email, SUBSTRING( MIN( CONCAT(LPAD(age,6,'0'),prenom) ), 7) AS prenom, min(age) FROM client GROUP BY email
explication : on ajoute l'age devant le prenom, on prend le min de cette nouvelle colonne, puis on retire l'age ajouté. le LPAD permettant de maitriser le nombre de zero ajouté et donc combien de caractère à retirer.
Des idées sur ce code, ou sur d'autre pour résoudre mon problème ?
EDIT 10 jours plus tard : ce code tourne en prod, vraiment très pratique, n'ayant par contre aucun besoin en perfomance je n'ai effectué aucune mesure à ce sujet (mais ca répond très vite qd même)
Merci
Merci pour vos réponses,
Ces données proviennent d'une base non fiable, par exemple des personnes répondant à des sondage, et 1 jour ils vont fournir un mail avec un prenom et leur age, et parfois avec le même mail fournir le prénom de leur femme avec l'age de leur femme.
Avec cette base je dois faire du mailling, et donc pour récupérer les mails de manière unique, avec l'age minimu, et le prénom associé à cette ligne.
Y'a peut etre des idées sur cette page : http://dev.mysql.com/doc/refman/5.0/fr/example-maximum-column-group-row.html
mais malheuresement il est ecrit "mais en utilisant une astuce inefficace que j'appelle ``astuce du MAX-CONCAT'' sans donner l'explication du pourquoi "inefficace"
Dans mon ca ca donnerai une requete comme cela :
SELECT email, SUBSTRING( MIN( CONCAT(LPAD(age,6,'0'),prenom) ), 7) AS prenom, min(age) FROM client GROUP BY email
explication : on ajoute l'age devant le prenom, on prend le min de cette nouvelle colonne, puis on retire l'age ajouté. le LPAD permettant de maitriser le nombre de zero ajouté et donc combien de caractère à retirer.
Des idées sur ce code, ou sur d'autre pour résoudre mon problème ?
EDIT 10 jours plus tard : ce code tourne en prod, vraiment très pratique, n'ayant par contre aucun besoin en perfomance je n'ai effectué aucune mesure à ce sujet (mais ca répond très vite qd même)
Merci