"Bjarke" == Bjarke Walling Petersen <bwp.news@bwp.dk> writes:
> Hej.
> Kort sagt: Jeg ønsker at sortere et talfelt på antallet af 'tændte' bits,
> der er i det. Hvordan gør jeg dette?
...
> Sidst men ikke mindst: Er der nogen der kan se en nem og elegant måde at
> konvertere fra status-tallet til nr. for sortering - og omvendt? (hvis jeg
> har brug for det) Det skal måske lige nævnes at der er tale om et 5-bit tal
> (5 mulige steder at nyheden kan vises), dvs. 0-31 - konverteringsfunktionen
> afhænger vel af det maksimale antal bits.
Hvis du har et endeligt antal bits, kan du nok fuske noget sammen i
retning af:
SELECT * FROM tabel ORDER BY ((bitfelt & 1) + (bitfelt & 2) / 2 +
(bitfelt & 4) / 4 + ...)
Kønt er det ikke, men det kan formentlig komme til at virke.
> Måske det generelt er en dumt at gemme bit-værdier i en database? Det er
> blot irriterende, hvis jeg skal til at lave det om, nu hvor hele mit system
> er programmeret til at køre med denne bit-status-værdi.
En bitvektor giver en meget effektiv pladsudnyttelse, men det vil
måske kunne hjælpe dig i det lange løb med et view der kan konvertere
bitværdierne til/fra noget mere læseligt. Så har du også mulighed for
at flytte dit system glidende fra bitrepræsentation til noget andet.
--
/Wegge <
http://outside.bakkelygaard.dk/~wegge/>
echo mail: !#^."<>"|tr "<> mail:" dk@wegge