Avatar billede engberg Juniormester
28. august 2005 - 09:32 Der er 9 kommentarer og
1 løsning

Sorter så 2 kommer før 10

Når jeg henter brugere fra en sql og lister dem ORDER BY Brugernavn, så kommer de (naturligvis) således:

Bruger1
Bruger10
Bruger11
Bruger2
Bruger3

Kan man ikke afhjælpe det problem (uden at kalde brugerne for Bruger01, Bruger02 osv..)..
Avatar billede hmortensen Nybegynder
28. august 2005 - 09:41 #1
Hvorfor kalde dem 'Bruger' foran ?
Hvis du gemmer tallet kun i et int felt, så vil din ORDER BY virke.
Avatar billede engberg Juniormester
28. august 2005 - 09:51 #2
Sådan er det nu engang bare! :-)
Avatar billede hmortensen Nybegynder
28. august 2005 - 09:54 #3
Det giver ikke mening at have Bruger foran. Det kan sættes ind i udskrivning, hvis det skal stå der. Det andet er bare redundant data.
Avatar billede gnuff Praktikant
28. august 2005 - 12:16 #4
Ellers kan du gøre det at kalde 1 for 01, 2 for 02 osv, så kommer de også i den rigtige rækkefølge
Avatar billede hmortensen Nybegynder
28. august 2005 - 13:14 #5
gnuff, prøv at læse hvad spørger skriver.
Avatar billede engberg Juniormester
28. august 2005 - 13:51 #6
Det kan da ikke passe at det er umuligt!!!
Avatar billede gnuff Praktikant
28. august 2005 - 13:58 #7
Har du prøvet at rette i tabellerne i databasen?
Avatar billede engberg Juniormester
28. august 2005 - 14:45 #8
At rette dem??? Hvad mener du - der skal ikke rettes noget i min db...
Avatar billede hmortensen Nybegynder
28. august 2005 - 15:07 #9
Det virker som om du ikke vil forstå hvad der bliver sagt...
Avatar billede gertnissen Nybegynder
28. august 2005 - 15:42 #10
Lad os se om vi kan hjælpe med det akutte problem og ikke med forslag til re-design af databasen til noget mere fornuftigt. Mon ikke eksemplet er en simplificering af et konkret tilsvarende problem, ala hvordan sorteres på et subset af indholdet.

Nedenstående er ikke testet på MySQL !

select *
from tabel
order by lpad(substr(bruger,7),2,'0')

Men det kan godt blive noget dyrt hvis der ligger mange brugere eller hvis forespørgslen skal laves ofte. Som de ovenstående forslag, er det værd at overveje et andet design, evt. et nyt felt til sorteringen (hvis det er mere overskueligt - selv om det skaber yderligere redundant data og ødelægger den relationelle tanke i databasen)
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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