Mailinglisten-Archive |
Hallo Hannes, >Guten Tag Wolfgang Skupin, > >am Donnerstag, 13. März 2008 um 17:20 schrieben Sie: > > >> hallo, > >> habe eine Tabelle `im_source` mit einer Set-spalte `medium` >> die Set-Werte sind in der Form >> 'keiner','ein wert','noch ein wert', etwas anderes', >> usw. eingetragen. >> für das Select- Query bekomme ich ein array mit >> dualzahlen array( 2,4,8,16,32, ...); >> jeder Datensatz kann jede Kombination der Set-Werte enthalten oder nur den >> Wert 'kein' (1) . >> nun sollen alle DS ausgewählt werden die >> etweder min. einen oder x dieser Werte enthalten >> oder eben alle dieser Werten enthalten ( summe der Arraywerte ) > > > >> SELECT `ims`.`id` FROM `im_source` AS `ims` WHERE 1 AND >> (`ims`.`medium` BETWEEN 2 AND 126 OR `ims`.`medium` = 2 OR `ims`.`medium` = >> 4 OR `ims`.`medium` = 8 OR `ims`.`medium` = 16 OR `ims`.`medium` = 32 OR >> `ims`.`medium` = 64 OR `ims`.`medium` = 126 ) ORDER BY >> `ims`.`id`,`ims`.`Fileinsert` DESC > >126 oder 128 , 128 waere die richtige 2er Potenz > mein array enthält (2,4,8,16,32,64) also in diesem Fall ist Bit 1 und Bit 8 nicht gesetzt sondern nur Bit 2 bis 7 das macht in der Summe 126 leider bekomme ich, wenn nur mit BETWEEN arbeite gleich gar keine korrekte Werte.
php::bar PHP Wiki - Listenarchive