Avatar billede the-gnu.dk Nybegynder
30. januar 2003 - 17:57 Der er 11 kommentarer og
1 løsning

ORDER BY felt med tal...

Hvis jeg har: 1, 2, 3, 10, 11 i en MySQL database, og siger ORDER BY felt. Så tager den 1, 10, 11, 2,... - Den tror 10 er 1.0. Ved du hvordan man får den til at lade være med deT?
Avatar billede htm Nybegynder
30. januar 2003 - 17:58 #1
Hvilken type har du givet dit felt som skal sorteres efter?
Avatar billede midas_dk Nybegynder
30. januar 2003 - 18:00 #2
Den tror IKKE at 10 er 1.0, men den sorterer blot efter det gode gamle "intet før noget" princip... Lur mig om ikke dit sorteringsfelt er en streng?
Avatar billede the-gnu.dk Nybegynder
30. januar 2003 - 18:01 #3
Typen er varchar...

Hvis jeg laver det til INT virker det sikkert, men den skal kunne indeholde både tal og bogstaver
Avatar billede htm Nybegynder
30. januar 2003 - 18:02 #4
I så tilfælde har du ikke anden mulighed end at sætte 1 til 01 i stedet så vil den sortere som den skal! Eller også kun at bruge tal og bruge int som type!
Avatar billede the-gnu.dk Nybegynder
30. januar 2003 - 18:03 #5
Hmm... Skod!
Avatar billede midas_dk Nybegynder
30. januar 2003 - 18:21 #6
*føler sig snydt for point*
Avatar billede a1a1 Novice
31. januar 2003 - 00:17 #7
skod..?

det kunne jo også være at man kunne designe databasen anderledes, et felt til tal et til bogstaver.....
Avatar billede xirb Nybegynder
01. maj 2003 - 15:31 #8
Lidt sent, men til evt. senere læsere kan en simpel løsning være, at sætte et mellemrum før de éncifrede tal - så vil det fungere!
(Det er noget scriptet skal gøre automatisk inden tallene sættes i DB'en. Man kan også gøre det manuelt, men det er jo lidt B-agtigt, at skulle huske på det.)

Det virker nemlig, fordi så sorteres der således, at " " (ingenting) er mindre "1" - derfor kommer " 8" (ingenting + "8") før "10".
Avatar billede xirb Nybegynder
01. maj 2003 - 15:32 #9
(ingenting = mellemrum)
Avatar billede midas_dk Nybegynder
01. maj 2003 - 16:14 #10
xirb >> Undskyld, men er det ikke det jeg skrev den 30/01-2003 klokken 18?
Avatar billede xirb Nybegynder
01. maj 2003 - 17:07 #11
Hov, JO, sørme er det da så!
Men bare ikke særligt let-forståeligt åbenbart. :)
(Ved en hurtig gennemlæsning tolkede jeg det som en henvisning til et fx matematisk princip, og ikke en guideline til hvordan man kunne komme ud over problemet. Og fandt derfor "samme løsning" andetsteds.)
;-)
Avatar billede midas_dk Nybegynder
02. maj 2003 - 09:20 #12
Hehe... Nej, men det var også en temmelig komprimeret problem-definition. Så må man komprimere sit svar en anelse! ;-)

Den eneste rigtige løsning er naturligvis at ændre datatypen for det pågældende felt, men den går åbenbart ikke i dette tilfælde...
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