webForumDet fria alternativet

Sorteras fel

Databaser & SQLur Databashanterare & SQL

3 svar · 491 visningar · startad av streetrobban

Medlem sedan jan. 20011 140 inlägg
Frågan#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.

Medlem 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.

Medlem 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.

Medlem 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.

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