asp.net 0 Denunciar post Postado Setembro 23, 2004 Como fazer uma consulta aleatória de registro numa tabela? Sei como fazer isto via ASP, mas queria via SQL, tem como? Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Setembro 23, 2004 Acho que isso deve funcionar, tenta aí: SELECT campos FROM tabela ORDER BY RAND() LIMIT 1 Compartilhar este post Link para o post Compartilhar em outros sites
asp.net 0 Denunciar post Postado Setembro 23, 2004 funcionou beleza, valeu cara Compartilhar este post Link para o post Compartilhar em outros sites
luisribeiro 0 Denunciar post Postado Setembro 23, 2004 Pessoal,mas vocês sabem fazer com que o limit pegue somente os 6 registros ordenados DESC na base de dados.já tentei.ORDER BY RAND() DESC LIMIT 6e não funcionou.Aguardo ajudas...Valeu... Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Setembro 23, 2004 Não entendi, você quer que os 6 registros sejam aleatórios, mas ordenados ?Se são aleatório não poderá haver ordem, o que acho que você pode fazer é ordenar depois colocando num array, por exemplo. Compartilhar este post Link para o post Compartilhar em outros sites
luisribeiro 0 Denunciar post Postado Setembro 23, 2004 Walace,eu digo assim, pegar somente os últimos 6 registros cadastrados no banco de dados.Pq desse jeito ele faz a rotina aleatória dentre todos os registros.entendeu?Aguardo contato.Muito obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites
michelsp 0 Denunciar post Postado Setembro 23, 2004 eu digo assim, pegar somente os últimos 6 registros cadastrados no banco de dados.Tira o rand() da query. Compartilhar este post Link para o post Compartilhar em outros sites
luisribeiro 0 Denunciar post Postado Setembro 24, 2004 Mas se eu tirar o rand(), a consulta não vai mais ficar randomica, eu quero pegar somente os 6 últimos e fazer isso ficar randomico.abraços Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Setembro 24, 2004 Então é o que eu falei cara, dois passos:-seleciona os últimos 6 registros select campo from tabela where <condicao> order by campo DESC LIMIT 6-coloca a chave disto em um array-Faz o rand no array, assim resolve seu problema pára isso usa a função array_randbeleza ?!? Compartilhar este post Link para o post Compartilhar em outros sites
luisribeiro 0 Denunciar post Postado Setembro 24, 2004 Walace,eu nunca mexi com array, você poderia me dar uma noção sobre o mesmo?Obrigado pela ajuda.abraços... Compartilhar este post Link para o post Compartilhar em outros sites
walace 1 Denunciar post Postado Setembro 24, 2004 Taí: PHP [/tr][tr] $conexao = mysql_connect("localhost", "root", ""); $bd = mysql_select_db("teste", $conexao) or die("erro"); #Consulta Registro no BD $consulta = "SELECT * from aluno order by codigo desc limit 6"; $resultado = mysql_query($consulta, $conexao); $num = mysql_num_rows($resultado); //Monta o resultado da select e coloca em $arr $arr=array(); for($i=0;$i<$num;$i++) { $nome = mysql_result($resultado,$i,"nome"); $arr[$i]=$nome; } //Mostra conteudo do array, fiz isso só para você ver como é for($i=0;$i<$num;$i++) { echo $arr[$i]."<br>"; } //Rand //"Sorteia" de arr um elementro (parametro 1) echo "<br>".$arr[array_rand($arr, 1)]; ?> [/tr] Qualquer coisa grite. Compartilhar este post Link para o post Compartilhar em outros sites
Pablo.p48l0 0 Denunciar post Postado Abril 13, 2006 Ou entaum usa subconsulta.. Algo do tipo:SELECT * FROM TABELA ORDER BY DESC LIMIT 6 WHERE EXISTS (SELECT * FROM TABELA ORDER BY RAND()) Compartilhar este post Link para o post Compartilhar em outros sites