webForumDet fria alternativet

Sorteras fel

Databaser & SQLur Databashanterare & SQL

3 svar · 491 visningar · startad av streetrobban

streetrobbanMedlem sedan jan. 20011 140 inlägg
#1

Hej!

Jag skriver ut en lista på följande sett:

5.9
5.6
5.1
4.9
12.6
1.8

Men självklart vill jag ju att 12.6 ska hamna överst, vet någon varför listan skrivs ut på följande sätt? Jag kör bara vanlig ORDER BY Namn DESC. Fälten i databasen är satta till TEXT.

EDIT: Jag testade att ändra fältet i databasen till DOUBLE istället och nu sorterar den rätt.

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Ja, för så är det... Sorteringen är helt rätt när man sorterar strängar. När du jämför strängarna '12.6' och '1.8' så genomsöks strängen från vänster till höger. Först jämförs '1' mot '1', och eftersom '1' = '1' så gör sökningen vidare till '2' i '12.6' och '.' i '1.8' och eftersom '2' anses vara högre än '.' så hamnar '12.6' högre.

streetrobbanMedlem sedan jan. 20011 140 inlägg
#3

Tråden är löst. Men hur accepterar man ett svar då? Det går inte att göra på sig själv.

@ndersMedlem sedan juni 200032 969 inlägg
#4

Jodå, det går att göra på sig själv, men inte på första inlägget.

142 ms totalt · 3 externa anrop · v20260731065814-full.b2af184d
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)