Zdravim chtel jsem se zeptat jak mam udelat to kdyz mam klasicky dotaz select * from table order by cislo asc
a tento dotaz mi v pohode vypise cisla a seradi je ale tak ze napise 1,10,11,2,20,25,3,35 cisla od 2-9 za vzdy az za cislo jemu mensi ale pritom by se logicky meli radit 1,2,3,4,5,6,7,8,9,10.
Diky moc za radu
To bude tím, že máš sloupec cislo ve formátu řetězce (char nebo varchar nebo dokonce text) a nikoliv číslo (tinyint, smallint, mediumint, int, ....).
SQL to bere jako řetězec, takže to řadí správně, '11' opravdu je před '2'.
Jo a mimochodem na SQL tady je samostatná sekce fóra.
ja vim ja jen ze to melo souvislost sphp tam je problem v tom ze to muze byt napr i 42-54 apod.Neda s eto nejak resit?
Ty v té databázi ukládáš i řetězce ve tvaru '42-54', chápu to dobře jo?
Možná by nebylo špatné zvážit jestli by to nešlo řešit jinak (jiná struktura databáze).
Jinak nevím jestli SQL má funkci na převod řetězce do čísla, každopádně určitě by to šlo vyřešit tak, že bys načetl výsledek dotazu bez toho order a seřadil si to až pak v PHP.