Mailinglisten-Archive |
hallo Sebastian, >Wolfgang Skupin schrieb: >> 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. > >wenn du direkt mit den Bitwerten der SET-Spalte arbeiten willst, solltest du >immer +0 verwenden, also: > > >`ims`.`medium` + 0 BETWEEN 2 AND 126 > > >eventuell hilft dir ja auch EXPORT_SET() > danke für den Hinweis mit +0 , das hatte ich wohl überlesen EXPORT_SET() schau ich mir gleich noch an. Grüsse Wolfgang Skupin
php::bar PHP Wiki - Listenarchive