Biztosan már többetekkel előfordult, hogy SQL-ben akartatok sorbarendezni szöveget számként és nem éppen a nektek megfelelő sorrendet kaptátok, mivel a rendező algoritmus szerint a 10 az előbbre van mint a 2.
Erre egy nagyon jó megoldás, ha a rendezendő mező értékét megnövelitek 0-val
. Ezzel a módszerrel nagyjából azt érhetjük el mint PHP alatt az intval() függvénnyel.
Nézzünk is rá egy példát:
| Adathalmaz | Rendezés: Order by field | Rendezés: Order by (field+0) |
|---|---|---|
| 6. verseny | 1. verseny | 1. verseny |
| 1. verseny | 10. verseny | 2. verseny |
| 19. verseny | 12. verseny | 6. verseny |
| 12. verseny | 16. verseny | 9. verseny |
| 16. verseny | 19. verseny | 10. verseny |
| 2. verseny | 2. verseny | 12. verseny |
| 20. verseny | 20. verseny | 16. verseny |
| 23. verseny | 23. verseny | 19. verseny |
| 9. verseny | 6. verseny | 20. verseny |
| 10. verseny | 9. verseny | 23. verseny |



Köszi szépen, hogy közzétetted a tapasztalatodat. Számomra rettentő hasznos volt, mivel az oldalamon http://www.fmp1.net/hirek/ a jobb oldali top 10-es listában az adatok végre sorrendben van