mam v db riadky s cislami
1.1.1
1.2.1
...
1.50.1
ak zadam
"select * from order by id";
zoradi mi to
1.1.1
1.10.1
1.2.1
a ja to potrebujem
1.1.1.
1.2.1
1.10.1
Je problem v znakovej sade, alebo niekde inde? pouzivam windows-1250 aj na stranke aj v DB
Jde o to, ze to radi podle abecedy jako retezec a 1 je proste pred 2, jako je treba b pred d.
:-( neda sa to nejako obist?
Vsechno se da vzdycky nejak obejit :o)
Jedna moznost je, to ukladat do DB v nasledujicim formatu:
01.001.001
01.001.002
01.002.001
Samozrejme to bude fungovat jen do 999 ;-) ... Pokud by to vadilo pri zobrazovani uzivateli, tak by sis s tim musel nejak poradit, ale to by v PHP nemusl byt takovy problem.
Radek
ještě můžeš každý kousek ukládat do extra sloupečku, seřadit to podle čísel a výsledek složit:
select concat(s1, ".", s2, ".", s3,) from tab order by s1, s2, s3
A nebo se to ještě dělá tak, že máš sloupeček s "1.10.1" a přidáš ještě jeden sloupeček, kde budeš mít čísla, podle kterých to setřídíš.
Marek: dik, presne tak som to spravil.