Ik heb een kolom waarin bijv. de volgende data staat:
1.1.2.5
1.1.2.6
1.1.2.10
1.1.2.11
Als ik deze kolom sorteer, dan sorteert hij het als 10,11,5,6 maar het is de bedoeling dat het 5,6,10,11 wordt. Ik kan in de mysql handleiding hiervoor niets vinden. Als het om gewone getallen zou gaat zou ik er volgens mij een INT veld van moeten maken, maar dat gaat nu niet op.
Wie weet een manier om dit goed gesorteerd te krijgen?
Ik neem aan dat het in een VARCHAR zit opgeslagen en dat is tekst. En tekst wordt alfabetisch gesorteerd. Dus dat zal niet lukken want de 1 komt voor de 5.
Wat is de betekenis van deze data? Is er een verband tussen 1.1.2.5 en 1.1.2.6 ? (lijkt mij wel, je wilt er tenslotte op sorteren)
Mocht dat het geval zijn, dan is het datamodel niet correct en heb je de boel op een verkeerde manier opgeslagen. Het probleem met sorteren is dan het eerste probleem dan de vele, vele problemen die je nog gaat tegenkomen. Het is zelfs maar de vraag of je alle problemen kunt oplossen zonder het datamodel aan te passen.
Het is wat moeilijk uit te leggen maar ik ben wat aan het puzzelen hoe ik een juiste id krijg voor een piramide-achtige indeling. De piramide bestaat dan uit diverse lagen, die dan ook weer zijn onderverdeeld in blokken, waarbij die blokken ook weer bestaan uit 8 delen. Deze laatste delen bestaan ook weer uit 16 delen. Dit gaat gebruikt worden als een soort ranking systeem.
Ik wil dus graag dat het id mij gelijk verteld waar dit "record" in de piramide thuishoort.
Dus, het eerste getal is de laag van de piramide, het tweede getal het blok, het derde getal is dus een van de 8 delen, en het laatste getal een van de 16 delen.
Ik hoop dat je iets snapt van wat ik wil bereiken, maar zoals ik al zei, het is wat lastig uitleggen. :P
Je zou m.b.v. substring functies IN de sql statement de waarden kunnen 'parsen' naar een integer, en dan daarop sorteren.. maar da's allemaal erg omslachtig.