Autor | Zpráva | ||
---|---|---|---|
25k Profil * |
#1 · Zasláno: 2. 3. 2007, 00:41:54
Zdravim,
mam 10 kategorii clanku a ja bych potreboval 1x sql dotazem vybrat vzdy 1 nahodny clanek z kazde kategorie. Zkousel jsem neco jako SELECT * FROM `clanky` WHERE kategorie IN (1,2,3,4 ... 10) ORDER BY RAND() LIMIT 10 ale to mi bohuzel treba vybere 3 clanky z 2 kategorie. Kdyz to zgrupnu tak tak mi to uz nevybira dle RAND. Jeste me napada 10x subselectu ... Jde to vubec? |
||
Kajman_ Profil * |
nešlo by něco jako...
select c.* from clanky c where c.id_clanku in (select(select id_clanku from clanky b where a.kategorie=b.kategorie order by rand() limit 1) id_clanku from clanky a where a.kategorie between 1 and 10 group by a.kategorie) |
||
smelinar Profil * |
#3 · Zasláno: 2. 3. 2007, 08:50:34
[b][/b]Nie. aspon ja to neviem
|
||
25k Profil * |
#4 · Zasláno: 2. 3. 2007, 10:50:12
Stale to vybira napr. dva clanky z jedne kategorie.
To je jedno, udelam to temi subselecty. Diky za snahu, jsem rad ze tu je odpoved :) |
||
MiSHAK Profil |
#5 · Zasláno: 2. 3. 2007, 10:59:49 · Upravil/a: MiSHAK
jde to dáš SELECT * FROM 'clanky' WHERE 'kategorie' IN (1,2..10) GROUP BY 'kategorie' LIMIT 10
Group vybere z každé kategorie jeden |
||
25k Profil * |
#6 · Zasláno: 2. 3. 2007, 11:43:06
V prvnim prispevku jsem napsal
>> Kdyz to zgrupnu tak tak mi to uz nevybira dle RAND. |
||
MiSHAK Profil |
#7 · Zasláno: 2. 3. 2007, 16:51:26
25k
sry sem to přehlídl možná použít DISCTINCT ale nevím jak :-/ |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0