Mailinglisten-Archive |
Wolfgang Hauck wrote: > > ---------- > Von: Cybot[SMTP:4t2.com-mysql at tekkno4u.de] > Antwort an: mysql-de at lists.4t2.com > Gesendet: Dienstag, 15. April 2003 09:55 > An: mysql at kundensystem.com; mysql-de at lists.4t2.com > Betreff: Re: Select-Frage: select kat, count(*) from table group by > kat - aber spezieller... > > Karsten Schätzer wrote: > >>Hallo Liste, >> >>>in dieser Tabelle sind die Daten wie folgt abgelegt: >>>1 a test at test.de >>>2 b test2 at test.de >>>3 a,b test3 at test.de >>>4 a,b test4 at test.de >>>5 b test5 at test.de >> >>>Nun würde ich gern von meiner SQL-Anweisung wissen wollen, wie > > viele > >>>haben die Kategorie a und wie viele haben die Kategorie b. Dabei > > ist nur > [...] > >>normalerweiße würde man das mit einer weiteren tabelle lösen: > > > Hi Sebastian, > > Aber nein, brauchts doch gar net... ;-) > Da muss er nur folgendes machen: > > http://www.mysql.com/doc/de/SET.html > > lesen... > > Wenn in einer SET-Spalte eine Zahl gespeichert wird, legen die Bits, > die in der binären Darstellung der Zahl gesetzt sind, die SET-Elem > ente im Spaltenwert fest. Angenommen, eine Spalte ist als > SET("a","b","c","d") festgelegt, dann haben die Elemente folgende > Bitwerte: > > SET Element Dezimalwert Binärwert > a 1 0001 > b 2 0010 > c 4 0100 > d 8 1000 > > ALTER TABLE `tabelle` CHANGE `set_spalte` `set_spalte` as SET("a", > "b","c",[...]) NOT NULL > > Und jetzt kann er suchen: > > SELECT * FROM tabelle WHERE set_spalte LIKE '%a%'; # Alles mit > Kategorie a > > oder: > > SELECT * FROM tabelle WHERE FIND_IN_SET('a',set_spalte)>0; # Alles > mit Kategorie a > > oder: > > SELECT * FROM tabelle WHERE set_spalte = 'a,c'; # Alles mit > Kategorie a UND ! c > > oder: > > SELECT * FROM tabelle WHERE set_spalte AND 1; # Alles mit Kategorie a > > oder: > > SELECT * FROM tabelle WHERE set_spalte OR 3; # Alles mit Kategorie a > ODER b > > ... > > MfG Wolfgang > > jo, is aber für kategorien eher ungeeignet, würde ich sagen, da man ja meißtens eh noch mehr daten zu den kategorien in der db hat, also wäre eine verknüpfungstabelle sinnvoller aber grundsätzlich stimmer ich dir natürlich zu, und ist so auf die schnelle natürlich auch einfacher -- Sebastian Mendel www.sebastianmendel.de www.tekkno4u.de www.nofetish.com -- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive