[MySQL] Rand s upřednostněním

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod infomf 19. 10. 2012 16:43

Ahoj,
potřebuji z databáze vytáhnout náhodné produkty (nejspíš pomocí funkce rand() ), ale tak, aby byly upřednostněni produkty, kde je akce=1 OR novinka=1.
Toto funguje:
Kód: Vybrat vše
SELECT *
FROM  `com_katalog_produkty`
ORDER BY  `akce` ,  `novinka`DESC
LIMIT 0 , 30


Ale jakmile se přidá random, rozhodí se to. Děkuji za rady.
PS: Vzhledem k tomu, že výsledek dále pomocí listu stránkuji, i když pro náhodný výběr je to trocha nesmysl, nechtěl bych použít náhodný výběr pomocí listu.
infomf
Junior
Uživatelský avatar

Odeslat příspěvekod johnnash 19. 10. 2012 17:39

Uprednosteny znamena co? Ze akce nebo novinky maji byt na zacatku nebo ze se maji vybirat s vetsi pravdepodobnosti?
Strankovani pomoci listu je co?
johnnash
Junior

Odeslat příspěvekod gandor 19. 10. 2012 17:41

Ono to funguje spravne, len ty po nom chces asi nieco trochu ine... Skus taketo daco (posielam ideu nie funkcny skript. Schvalne som tam skombinoval 2 moznosti do nefunkcneho mismasu):
Kód: Vybrat vše
SELECT c.*
FROM com_katalog_produkty AS c,(SELECT max(akce) AS max_akce,max(novinka) AS max_novinka FROM com_katalog_produkty) AS c2
ORDER BY if(akce=1 OR`novinka`=1,akce,max_akce),dalsi if..., rand()


Zamysli sa nad tym co som ti sem napisal. Maz tu vsetky stavebne kamene potrebne k poskladaniu celeho obrazku...
gandor
Mírně pokročilý


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků