Autor Zpráva
25k
Profil *
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 *
[b][/b]Nie. aspon ja to neviem
25k
Profil *
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
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 *
V prvnim prispevku jsem napsal

>> Kdyz to zgrupnu tak tak mi to uz nevybira dle RAND.
MiSHAK
Profil
25k
sry sem to přehlídl možná použít DISCTINCT ale nevím jak :-/
Toto téma je uzamčeno. Odpověď nelze zaslat.

0