Autor | Zpráva | ||
---|---|---|---|
Radek Novák Profil |
#1 · Zasláno: 9. 5. 2007, 17:08:19
Mám v databázi (MySQL) tísice záznamů, které bych chtěl řadit podle velikost.. Každý záznam má v řádku "size" zapsanou velikost souboru v Kb.
Pokud pomocí "SELECT size FROM .............. ORDER BY size desc" Tak se mi záznamy seřadí nějak takto: 999Kb; 951Kb; 91Kb; 8950Kb; 850Kb;... Řadí to záznamy podle prvního čísla a vůbec to nebere ohled na to, zda je číslo ve stovkách či tisících.. Neznáte prosím někdo postup jak docílit správného řazení? |
||
bukaj Profil |
#2 · Zasláno: 9. 5. 2007, 17:21:14
jediná možnost, která mě napadá je nejdříve si záznamy vložit do pole v PHP a potom je setřídit pomocí natsort().
|
||
Radek Novák Profil |
#3 · Zasláno: 9. 5. 2007, 17:25:04
To by zase ale rapidně zatěžovalo datábázový server. Vždy by se musely projet všechny záznamy.. Když by teda člověk projel prvních 30 záznámů, stránkování po 10. Tak by místo 30 zpracovaných výsledku muselo být zpracováno 6000 výsledků. (Pže by se vždy musely zpracovat všechny záznamy..)
|
||
bukaj Profil |
#4 · Zasláno: 9. 5. 2007, 17:48:18
Radek Novák
nebo by také šlo jednorázově to všechno upravit do podoby, aby to pak řadila databáze. takže: 999Kb => 00999Kb 951Kb => 00951Kb ... atd. to by bylo asi nejjednodušší, pokud tedy neexistuje nějaký sql příkaz způsobující přirozené řazení jako natsort() |
||
shamania Profil |
#5 · Zasláno: 9. 5. 2007, 17:57:49
jestli jsem to správně pochopil, tak sloupec size je znakového typu.. takže navrhuju odstranit z hodnot jednotky "kb" a nechat tam jen čísla a převést sloupec třeba na typ "int". Pak už by při sql dotazu neměl být problém..
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0