Autor Zpráva
milan.lipka
Profil *
Zdravím,
mám v tabuľke napríklad tieto hodnoty:
hodnota 1
hodnota 2
hodnota 3
...
hodnota 10
hodnota 11
hodnota 12


Problém ale nastane, keď chcem tieto hodnoty usporiadavať cez order by. Neusporiadavajú sa v poradí ako by mali (..., hodnota 8, hodnota 9, hodnota 10, ...) ale v poradí hodnota 1, hodnota 10, hodnota 11, hodnota 12, hodnota 2, hodnota 3, ... hodnota 9

Neviete mi niekto poradiť ako ich usporiadať správne? Viem, že napríklad v php existuje funkcia natsort, ktorá usporiadava hodnoty v poli takýmto spôsobom - je niečo takéto aj v mysql?

Vďaka.
milan.lipka
Profil *
ok, uz som to vyriesil podla http://forums.mysql.com/read.php?10,34908,35157,quote=1
Josef Čech
Profil
ORDER BY SUBSTRING(`sloupec_s_hodnotou`, LENGTH( "hodnota ")) + 0

Každopádně máš špatně navrnutou databázi, pokud potřebuješ takto řadit. ,)

Edit: Sakriš, pozdě (a hůře)... :)
milan.lipka
Profil *
Nemám zle navrhnutú databázu, len potrebujem trochu zložitejší ORDER BY :-) Viz.:
SELECT * FROM kraje WHERE lng='cs' ORDER BY IF(sub=0,LPAD(id,10,'0'),sub), LENGTH(nazov), nazov
es
Profil *
milan.lipka
Nemám zle navrhnutú databázu, len potrebujem trochu zložitejší ORDER BY :-) Viz.:
Jedným z príznakov zle navrhnutej databázy je nutnosť použitia „trochu zložitejší ORDER BY“.
Pokiaľ nie je toto radenie len výnimočné mali by byť čísla vo vlastnom číselnom stĺpci.
Toto téma je uzamčeno. Odpověď nelze zaslat.