9 ago

Ordenação Randômica com SQL

Fabio Mazzarino - 09/ago/2007

Doses Diárias, HowTo, Programação -

Um problema encontrado hoje. Como fazer um ORDER BY RANDOM com SQL?

Claro que o primeiro que eu perguntei foi o Fred, que odeia SQL, só pra tirar uma casca. Mas nada melhor que um pouco de tutano e documentação para resolver os problemas.



Encontrei na documentação do MySQL uma função chamada RAND, que retorna um número de ponto flutuante randômico entre 0 e 1. Essa função pode ser utilizada na cláusula SELECT.

Portanto, o SQL que eu queria ficou assim:

SELECT p.*, RAND() as random from produtos
WHERE p.destaque > 1000
ORDER BY random

Isso vai retornar uma lista de produtos com destaque maior que 1000 ordenados randomicamente.

Tags: , ,

Comentários

3 Comentários to “Ordenação Randômica com SQL”
Bruno Guedes:
agosto 9th, 2007 às 8:02 pm

Interessante… eu só gostaria de saber em que ocasião seria desejável uma consulta randômica em SQL… não consigo pensar, assim de pronto, uma aplicação prática realmente útil pra isso…


Fabio Mazzarino:
agosto 9th, 2007 às 11:50 pm

Bruno:

Vou dar um exemplo bem prático.

Imagine que seus clientes lhe pagam para ter mais destaque no seu site. E para isso vc faz diversos níveis de destaque. Só que é normal diversos clientes terem comprado o mm nível de destaque. Assim, vc randomiza os destaques do mm nível, assim cada destaque aparece o mm número de vezes.

Para isso vc faria um ‘ORDER BY destaqu, random’.


Bruno Guedes:
agosto 10th, 2007 às 9:55 am

Ah, sim… tinha pensado em outros exemplos, mas nos quais não pareciam realmente necessária uma “desordenação”. Agora sim, tudo faz sentido…


Deixe Seu Comentário

Pesquisar


Publicidade