phpbar.de logo

Mailinglisten-Archive

Auswertung von SET
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Auswertung von SET



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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive