Mailinglisten-Archive |
Hallo, > ---------- > Von: Rainer Engelbach[SMTP:rengelbach_(at)_gmx.de] > > Aus folgender Tabelle möchte ich die Zeilen angezeigt bekommen, > die eine 2 in subscription enthalten: > > +----+-------+--------------+ > | id | name | subscription | > +----+-------+--------------+ > | 1 | Test1 | 1,2,3,4,5 | > | 2 | Test2 | 1,5 | > | 3 | Test3 | 1,2 | > +----+-------+--------+-----+ > > select * from tabelle, tabelle as test WHERE '2' IN (test.subscription); > > liefert kein Ergebnis. > Jo, das geht so net :-) So etwas löst man am besten mit 2 Tabellen. Die Spalte subscription weglassen und eine Tabelle wie folgt anlegen: tabelle subscriptions id | name_id | subscription > 1 1 1 > 1 1 2 > 1 1 3 > 1 1 4 > 1 1 5 > 1 2 1 > 1 2 5 > 1 3 1 > 1 3 2 > Aber um auf deine Frage zurückzukommen... select * from tabelle where: > subscription = '2' OR > subscription like '2,%' OR > subscription like '%,2' OR > subscription like '%,2,%' > Fall: 1: Nur eine 2 im Feld 2: die 2 steht am Anfang 3: die 2 steht am Ende 4: die 2 steht in der Mitte. Wenn du das nicht sauber unterscheidest findest du auch Zahlen wie 22 und 12 usw.... Viele Grüße, Mathias --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive