Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Bezerk

Select aleatório

Recommended Posts

Tenho uma tabela categorizada de produtos onde cada categoria possui vários produtos.

 

Preciso fazer um select que pegue ALEATORIAMENTE APENAS UM PRODUTO POR CATEGORIA. Sei que a chave é a função RAND() mas não sei como usá-la na query:

 

Fiz uma query assim;

 

SELECT *

FROM produtos

WHERE categoria

IN (

 

SELECT DISTINCT categoria

FROM produtos

)

GROUP BY categoria;

 

Funciona deste jeito, mas me retorna sempre os mesmos produtos.

 

Alguém pode me dar uma luz?

 

Desde já agradeço a todas as respostas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente isto.

 

Um produto por categoria ....

 

select produto
from produto p
where categoria = 'x'
order by rand()
limit 1

 

para cada categoria

 

select (select produto
       from produto p
       where categoria = c.categoria
       order by rand()
       limit 1) produto,c.categoria
from categoria c

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.