Dire que j'ai cet ensemble de donnéesExiste-t-il une fonction d'agrégation MySQL pour "CONTAINS"?
user | group --------+------- [email protected] | A [email protected] | B [email protected] | A [email protected] | B [email protected] | A [email protected] | B [email protected] | C
Je veux convertir en une table comme ceci:
user | IN_A | IN_B | IN_C --------+-------+-------+------- [email protected] | TRUE | TRUE | FALSE [email protected] | TRUE | FALSE | FALSE [email protected] | FALSE | TRUE | FALSE [email protected] | TRUE | TRUE | TRUE
J'ai:
SELECT user, IF(LOCATE('A', GROUP_CONCAT(group)) > 0, TRUE, FALSE) AS IN_A, IF(LOCATE('B', GROUP_CONCAT(group)) > 0, TRUE, FALSE) AS IN_B, IF(LOCATE('C', GROUP_CONCAT(group)) > 0, TRUE, FALSE) AS IN_C FROM users GROUP BY user
Ce que je me demande est-ce qu'il y a une meilleure façon de savoir si un champ agrégé contient une valeur, ou si c'est le seul moyen?
Fonctionne à merveille! –