Om te sorteren in een MySQL query dan gebruiken je “order by”. Bijvoorbeeld:
ORDER BY naam ASC
Vervolgens krijg je netjes een gesorteerd rijtje, bijvoorbeeld:
- Android
- Android 2.2
- Android 2.3
- Android 3.1
- Android 3.2
- Android 4.0
- Android 4.0.3
- BlackBerry Tablet OS
- iOS 4
- iOS 5
- iOS 6
- Windows 7 Professional
- Windows 8
- Windows 8 Pro
Maar wanneer het gaat om nummers klopt de volgorde niet:
- 1024 x 600
- 1024 x 768
- 1280 x 768
- 1280 x 800
- 1366 x 768
- 1920 x 1200
- 2048 x 1536
- 800 x 480
De laatste hier genoemd dient bovenaan te staan. Om dit op te lossen kunnen de ABS functie van MySQL gebruiken:
ORDER BY ABS(naam) ASC
Wat het juiste resultaat geeft:
- 800 x 480
- 1024 x 600
- 1024 x 768
- 1280 x 800
- 1280 x 768
- 1920 x 1200
- 2048 x 1536
Maar! Het andere rijtje klopt nu niet meer:
- Android 3.1
- Android
- BlackBerry Tablet OS
- Android 3.2
- Android 2.3
- Android 4.0
- iOS 5
- Android 4.0.3
- iOS 4
- Android 2.2
- Windows 7 Professional
- Windows 8
- Windows 8 Pro
- iOS 6
Om dat op te lossen kan je een combinatie van beide gebruiken, ofwel:
ORDER BY ABS(naam),naam ASC