Avatar billede junl Nybegynder
05. august 2005 - 21:01 Der er 11 kommentarer og
1 løsning

Sortering af nogle felter

Hej

Jeg er ikke en store mysql haj - så jeg har fået et lille problem. Jeg prøver at finde records i en db der hvor nogen af felterne er ens.

f.eks.

|somevalue|id1|id2|id3|id4|id5|somevalue|

Under somevalue felterne står der data der ikke skal sorteres. Under hvert id står en talværdi (mellem 1 og 20).

Det resultat jeg kunne ønske mig kunne se således ud:

|somevalue|id1|id2|id3|id4|id5|somevalue|
-----------------------------------------
|blablabla| 1 | 3 | 5 | 1 | 2 |blablabla|
|blablabla| 1 | 3 | 5 | 1 | 2 |blablabla|
|blablabla| 1 | 3 | 5 | 1 | 2 |blablabla|

|blablabla| 2 | 3 | 5 | 7 | 2 |blablabla|
|blablabla| 2 | 3 | 5 | 7 | 2 |blablabla|

således at de 3 første er ens (hvis der findes 3 af de) og de næste 2 er ens osv.

Kan det lade sig gøre?
Avatar billede jaw Nybegynder
05. august 2005 - 21:05 #1
Hmm, nah jeg tror ikke man kan, hvis jeg forstår dig helt. Det bedste jeg kender til er:

ORDER BY id1, id2, id3, id4, id5
Avatar billede arne_v Ekspert
05. august 2005 - 21:12 #2
en ide:

... GROUP BY id1*10000+id2*100+id3,id4*100+id5
Avatar billede junl Nybegynder
05. august 2005 - 21:27 #3
arne v -> det virker faktisk tilnærmelsesvist, men jeg kan ikke gennemskue hvorfor. Jeg har faktisk id1 til id8 - hvordan ville det så se ud?
Avatar billede junl Nybegynder
05. august 2005 - 21:28 #4
Jeg har prøvet med order by og jeg synes ikke det bliver overskueligt - jeg har ca. 1100 records som stadig groer
Avatar billede arne_v Ekspert
05. august 2005 - 21:28 #5
hvilke af de 8 kolonner skal grupperes sammen ?
Avatar billede arne_v Ekspert
05. august 2005 - 21:30 #6
ORDER BY er nok lige så godt

... ORDER BY id1*10000+id2*100+id3,id4*100+id5
Avatar billede junl Nybegynder
05. august 2005 - 21:35 #7
ja det virker med din "formel" men ikke med ORDER BY id1,id2,id3 ... id8. Hvordan kan jeg udvide dit eksempel til otte ids? Og løfte sløret for dit trick? :-)
Avatar billede junl Nybegynder
05. august 2005 - 21:36 #8
indsæt selv "kan du" mellem "og" og "løfte"
Avatar billede arne_v Ekspert
05. august 2005 - 21:38 #9
hvordan den skal se ud med 8 afhænger af grupperingen - er det 1-3,4-5 og 6-8
eller 1-5 og 6-8 eller ?
Avatar billede arne_v Ekspert
05. august 2005 - 21:39 #10
Hvis du laver en

SELECT id1*10000+id2*100+id3,id4*100+id5 FROM ...

så afslører tricket sig nok
Avatar billede junl Nybegynder
05. august 2005 - 22:08 #11
Har regnet den ud :-) Takker - lig et svar så er det point
Avatar billede arne_v Ekspert
05. august 2005 - 22:19 #12
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester