Mailinglisten-Archive |
Hi. Ich will die Häufigkeit von Werten in einer Spalte vom Type SET auswerten. Ein "select Kat, count(Kat) as Anz from bilder group by Kat;" bringt nicht den gewünschten Erfolg, weil Mehrfachnennungen so nicht aufgedröselt werden: ... Menschen 3 Menschen,Tiere 2 Tiere 4 ... Ich will aber: Menschen 5 Tiere 6 Ich hab eine Tabelle mit folgenden Aufbau ID int not null autoincrement, Name char(50), Kat set('Menschen','Landschaften','Gebäude','Tiere', 'Pflanzen','Gegenstände','Sonstiges') Die Struktur der Tabelle kann ich nicht ändern, wird so regelmäßig importiert. Ich hab nun eine zweite Tabelle KN aufgebaut, die einfach alle Werte vom Set enthält: ID int not null autoincrement, Kat char(15) Mit "select KN.Kat, count(KN.Kat) as Anz from KN left join bilder on find_in_set(KN.Kat,bilder.Kat) group by KN.Kat;" klappt nun das gewünschte. Leider mit dem kleinen Schönheitsfehler, dass Kategorien, die nicht in bilder vorkommen trotzdem mit 1 gezählt werden (wegen dem NULL im Join). Lässt sich zwar mit einer Where rausfiltern, aber ich hätte schon lieber eine 0 da stehen; außerdem kommt so immer die Reihenfolgen durcheinander. Fällt jemand eine bessere Lösung ein, wenn möglich ohne die zusätzliche Tabelle KN? Oder ist das die einzig gangbare Lösung? Ciao, Rene -- ---------------------------------------------------------------------- mailto:rene.fertig_(at)_wtal.de http://home.telebel.de/referti/ ====================================================================== >>>>>>>>>>>> PGP-Key auf Anfrage +++ PGP-Key on request <<<<<<<<<<<< --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive