PHP, MySQL, CSS, XHTML, JavaScript
31. Dec. 2007
PHP / MySQL
Opp til flere ganger har folk spørt meg om jeg har en løsning på naturlig sortering på tall i MySQL-tabeller. Dette er egentlig et problem som er veldig enkelt å unngå. Det skal lite til, og har du det slik det burde være så er det ikke et problem i det heletatt.
Problemet er at det blir en ikke naturlig sortering på tall, og det blir problemer med at 10 kommer før 2 osv. Først om hvordan man kunne ha ungått problemet, og så om hvordan man kan løse det når det er oppstått.
Nevnte problem skjer om du har fieldtype som VARCHAR eller annen tekst-type. Om du har feltet som en INTEGER ville ikke dette være noe problem i det heletatt, og det hadde blitt sortert etter verdi slik som faller mennesket naturlig.
Når skaden først har skjedd er det to ting du kan gjøre. Du kan enten kjøre en ALTER på feltet og gjøre det om til INTEGER, eller du kan kjøre MySQLs CAST()-funksjon i spørringen. Måten dette gjøres på er som følger:
Da burde biffen være løst. Lykke til med sorteringen.
Innlegget ble postet 31.12.07 15:05 og ligger under kategorien PHP / MySQL. Du kan abonnere på kommentarene ved å bruke RSS 2.0 feed. Du kan legge til kommenter, eller trackback fra din blogg/side.
Legg igjen respons