Mailinglisten-Archive |
Moin! Ich habe folgende Tabelle: mysql> describe TESTING; +--------+-------------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------+-------------------------+------+-----+---------+-------+ | zahl_ | bigint(20) | | | 0 | | | text_ | char(255) | | | | | | SetCol | set('Yes','No','Maybe') | YES | | NULL | | +--------+-------------------------+------+-----+---------+-------+ 3 rows in set (0.00 sec) mysql> select * from TESTING; +-------+-------+--------------+ | zahl_ | text_ | SetCol | +-------+-------+--------------+ | 42 | 42 | NULL | | 0 | | Yes,No | | 0 | | Yes | | 0 | | No | | 0 | | Yes,No,Maybe | +-------+-------+--------------+ 5 rows in set (0.00 sec) Wie man sieht, kann die Spalte 'SetCol' 3 Werte aufnehmen: 'Yes' und/oder 'No' und/oder 'Maybe'. Wie schreibe ich ein SELECT das genau nur die Zeile auswählt, bei der 'Yes' und 'No' gesetzt sind? SELECT * FROM TESTING WHERE SetCol = 'Yes,No' Das klappt zwar, aber dafür muß ich wissen in welcher Reihenfolge die Werte in SetCol definiert wuden, denn: mysql> select * from TESTING WHERE SetCol = 'No,Yes'; Empty set (0.00 sec) Auch durch mehrere WHERE Statements bin ich nicht zum Ziel gekommen: mysql> select * from TESTING WHERE SetCol = 'No' AND SetCol = 'Yes'; Empty set (0.00 sec) mysql> select * from TESTING WHERE SetCol = 'No' OR SetCol = 'Yes'; +-------+-------+--------+ | zahl_ | text_ | SetCol | +-------+-------+--------+ | 0 | | Yes | | 0 | | No | +-------+-------+--------+ 2 rows in set (0.01 sec) mysql> select * from TESTING WHERE SetCol LIKE '%No%' OR SetCol like '%Yes%'; +-------+-------+--------------+ | zahl_ | text_ | SetCol | +-------+-------+--------------+ | 0 | | Yes,No | | 0 | | Yes | | 0 | | No | | 0 | | Yes,No,Maybe | +-------+-------+--------------+ 4 rows in set (0.00 sec) mysql> select * from TESTING WHERE FIND_IN_SET( 'Yes', FIND_IN_SET( 'No', SetCol ) ); Empty set (0.00 sec) Meine Frage ist nun, was muß ich schreiben wenn ich genau nur die Zeile auswählen möchte, bei der sowohl 'Yes' als auch 'No' gesetzt sind und ich nicht weiß in welcher Reihenfolge die Werte definiert wurden? Da ich das nicht weiß, kann ich leider auch nicht mit Zahlen arbeiten. Damit meine ich: mysql> select * from TESTING WHERE SetCol = 3; +-------+-------+--------+ | zahl_ | text_ | SetCol | +-------+-------+--------+ | 0 | | Yes,No | +-------+-------+--------+ 1 row in set (0.00 sec) Danke sehr, Alexander Skwar -- How to quote: http://learn.to/quote (german) http://quote.6x.to (english) Homepage: http://www.digitalprojects.com | http://www.iso-top.de iso-top.de - Die günstige Art an Linux Distributionen zu kommen Uptime: 18 hours 53 minutes --- !!NEU!! Fragen und Antworten zu MySQL und dieser Liste unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive