Olá! Friday, 29 de March de 2024.



Dicas CódigoFonte.net
Saturday, 28 de July de 2007

MySql x SQL Server: Sorteando registros aleatórios

Alguem já deve ter sentido a necessidade de obter dados de forma aleatória em um banco de dados, e pode ter passado horas tentando encontrar uma maneira mais fácil para isto.

Neste artigo tento descrever a forma que isto pode ser feita no SQL Server e aproveito para complementar mostrando também como isto pode ser feito através do MySl.

O SQL Server possui uma função chamada NEWID() que sorteia valores de chaves distintos, deve ser utilizado na cláusula ORDER BY retornando então os registros ordenados de forma aleatória. Então, se deseja-se obter uma quantidade determinada de registros de forma aleatória.

Veja o exemplo de uma query que retorna 10 funcionários do Rio de Janeiro, de forma aleatória:

SELECT TOP 10 * FROM tbFuncionarios WHERE nmEstado='RJ' ORDER BY NEWID()

Este mesmo código no MySql sofreria minimas modificações, pois lá temos a função RAND() que aparentemente realiza a mesma função:

Veja o exemplo:

SELECT * FROM `tbFuncionarios` WHERE `nmEstado`='RJ' ORDER BY RAND() LIMIT 1,10

Espero que com este pequeno artigo tenha facilitado a vida de diversos programadores que da mesma forma que eu já arrancaram muitos cabelos pensando nesta solução.

Diário do Programador

Comentários do artigo [Novo comentário]

Nenhum comentário, seja o primeiro a comentar.
Para adicionar um comentário você deve efetuar o login


Gostou do CódigoFonte.net? Quer indicar a um amigo?
Preencha os campos a seguir.
Seu Nome:
Seu E-mail:
E-mail de seu Amigo:


CodigoFonte.net » Meu Mural » Competiva - Criação de Sites » Todos os Direitos Reservados © 2002/2010