Autor | Zpráva | ||
---|---|---|---|
zero0x Profil |
#1 · Zasláno: 27. 4. 2007, 09:42:54
takze majme tabulku napriklad spoluziaci. nech tam budu polia popularita, a vek.
chcem vybrat 5 najpopularnejsich ziakov, avsak vystup chcem zoradit podla veku. teda chcem podla veku zoradenych 5 najpopularnejsich ziakov. skusal som subrequest, nieco ako select (select meno, vek, popularita from spoluziaci order by popularita limit 5) order by vek, lenze to skoncilo chybou. neviete, ako by sa to dalo urobit? |
||
Taps Profil |
#2 · Zasláno: 27. 4. 2007, 10:06:03
zkus to takto
$sql=mysql_query("select meno,vek,popularita from spoluziaci order by popularita DESC limit 5"); |
||
Kajman_ Profil * |
#3 · Zasláno: 27. 4. 2007, 10:29:22
select * from (select meno, vek, popularita from spoluziaci order by popularita limit 5) tmp order by vek
|
||
zero0x Profil |
#4 · Zasláno: 27. 4. 2007, 10:45:41 · Upravil/a: zero0x
Taps: to je blbost, on by ho zoradi podla popularity, ale co dalej?
Kajman_: to vyzera dobre, ale naco je tam slovo tmp ? btw toto funguje: select * from (select meno, vek, popularita from spoluziaci order by popularita limit 5) as spoluziaci order by vek edit: uz chapem to tmp, to si chcel dat as tmp, vsak? |
||
MzM Profil |
#5 · Zasláno: 27. 4. 2007, 12:33:53
..as tmp nebo jenom tmp, to as tam být nemusí.
nešlo by to jednodušeji tak, že to seřadíš podle dvou sloupečků?
ne že by ty předchozí byly špatně, ale myslím, že je to zbytečně matoucí |
||
tiso Profil |
#6 · Zasláno: 27. 4. 2007, 13:54:18
MzM - nešlo, nedosiahneš to čo chce, iba v 2 špeciálnych prípadoch: popularita (prvé triediace kritérium) by bola rovnaká, alebo by zoradenie podľa popularity zodpovedalo zoradeniu podľa veku...
|
||
zero0x Profil |
#7 · Zasláno: 27. 4. 2007, 14:00:01 · Upravil/a: zero0x
tiso: kym som pisal prispevok, tak si ma predbehol
takto to nefunguje, pretoze ja chcem nieco ine.. to co si napisal urobi asi to, ze zoradi podla popularity, a ak maju nahodou niektori dvaja rovnaku popularitu, tak zoradi podla veku. ibaze ja chcem 5 najpopularnejsich ziakov, a tych chcem zoradit podla veku.. prikladam vypis mysql> select * from ziaci; --iba vypis inac tento priklad zo ziakmi je cisto fiktivny, v skutocnosti riesim nieco ine :) ale na demonstraciu problemu je to dobre.. kazdopadne som sa naucil nieco o subqueries, asi to, ze ked subquery vracia jeden stlpec, tak sa odpoved sprava ako stlpec, teda ju mozeme jednoducho selectnut, a ak subquery vracia viacej stlpcov, tak sa to uz sprava ako tabulka. zaujimave :) |
||
Časová prodleva: 10 dní
|
|||
MzM Profil |
#8 · Zasláno: 7. 5. 2007, 11:04:25
jo takhle, tak to je asi to select ... from (select .... order, limit) order dobré řešení...
|
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0