J'ai une table avec un champ de nom et de type. Le champ de type contient le goût musical de la personne ainsi:Comment puis-je filtrer ces données de ma base de données?
« Rock, Pop, Métal, Dance » (varchar)
Je dois générer une liste Excel avec ces personnes regroupées par goût de la musique.
Par exemple:
- liste un avec tout le monde à Rock; Métal; Danse
- Un autre avec tout le monde dans Rock; Métal; Trance
- autre avec Rock (Only Rock)
- et ainsi de suite ...
Chaque utilisateur ne peut être que dans une seule liste. J'ai besoin de cette liste pour importer dans mon logiciel de newsletter. Chaque type est une liste de diffusion.
Je dois effectuer toutes sortes de combinaisons et ensuite créer la liste quand j'obtiens des résultats. Je me demandais quelle est la meilleure et la plus rapide pour ce faire. Peut être triture un script php ou même juste SQL.
Ps .: J'ai besoin de ces données d'une ancienne base de données créée par quelqu'un d'autre. Je suis d'accord, c'est une façon terrible de stocker.
Bien que ce ne soit pas une réponse à votre question, vous devriez envisager de normaliser votre base de données. –
Est-il possible que la chaîne soit "Metal; Rock; Dance"? Est-ce différent de "Rock, Metal, Dance"? Est-ce toujours le format exact ou les espaces sont-ils parfois manquants, parfois des virgules au lieu de points-virgules, etc.? –
J'ai besoin de ces données d'une ancienne base de données créée par quelqu'un d'autre. Je suis d'accord, c'est une façon terrible de stocker. L'ordre semble être toujours le même. Dans ce cas, après réflexion, semble que GROUP BY va créer toutes les listes.Sinon, je peux utiliser ORDER BY et ensuite diviser comme Scott a dit. –