SORTEAR REGISTRO NO BANCO DE DADOS
Olá
Tenho uma tabela no banco de dados que tem uns 150 registro
queria fazer um sorteio desses registros e exibir um de cada vez... como se fosse uma dica do dia... que cada dia mostra uma dica diferente.
Quando eu clicar em um botão ele mostra um registro aleatório diferente até ser exibido todos.
Como faço esse sorteio? Alguma ideia?
Tenho uma tabela no banco de dados que tem uns 150 registro
queria fazer um sorteio desses registros e exibir um de cada vez... como se fosse uma dica do dia... que cada dia mostra uma dica diferente.
Quando eu clicar em um botão ele mostra um registro aleatório diferente até ser exibido todos.
Como faço esse sorteio? Alguma ideia?
Para fazermos o sorteio via sql, precisamos saber qual é o banco de dados, pois há diferenças entre Oracle, SqlServer/Access e Firebird, e outros.
Como vc não deseja repetir as dicas, e em um sorteio há esta possibilidade, será necessário existir uma forma de marcar a dica que já foi utilizada para eliminá-la no próximo sorteio.
Como vc não deseja repetir as dicas, e em um sorteio há esta possibilidade, será necessário existir uma forma de marcar a dica que já foi utilizada para eliminá-la no próximo sorteio.
Olá
Eu estou utilizando o banco de dados MySQL.... é isso mesmo que estou querendo fazer um sorteio e marcar a dica pra pra sair do próximo sorteio....
Mas acho que estou precisando mesmo é saber como é o sorteio porque essa parte de marca já tinha pensado
Eu estou utilizando o banco de dados MySQL.... é isso mesmo que estou querendo fazer um sorteio e marcar a dica pra pra sair do próximo sorteio....
Mas acho que estou precisando mesmo é saber como é o sorteio porque essa parte de marca já tinha pensado
Bom, vc apenas manda ordernar com o rand() no final e informa que somente precisa do primeiro registro:
select dica from (SELECT Dica FROM tblDicas ORDER BY rand()) LIMIT 0,1
select dica from (SELECT Dica FROM tblDicas ORDER BY rand()) LIMIT 0,1
Olá Ricart
Eu esqueci que nesse projeto estou usando o Access mesmo (Quando é projeto simples uso ele)
eu coloquei assim:
Dim ds As New DataSet
ds.Clear()
myComando.Connection = conexao
myComando.CommandText = [Ô]select * from filme where status like [ô][Ô] & [Ô]Falta Assistir[Ô] & [Ô][ô] order by rand() limit 1[Ô]
myComando.CommandType = CommandType.Text
dApt.SelectCommand = myComando
dApt.Fill(ds)
Application.DoEvents()
MsgBox([Ô]cod [Ô] & ds.Tables(0).Rows(0).Item([Ô]codigo[Ô]))
e esta dando erro na linha
dApt.Fill(ds)
Erro de sintaxe (operador faltando) na expressão de consulta [ô]rand() limit 1[ô].
e não estou conseguindo entender porque.... a tabela tem registro.
Eu esqueci que nesse projeto estou usando o Access mesmo (Quando é projeto simples uso ele)
eu coloquei assim:
Dim ds As New DataSet
ds.Clear()
myComando.Connection = conexao
myComando.CommandText = [Ô]select * from filme where status like [ô][Ô] & [Ô]Falta Assistir[Ô] & [Ô][ô] order by rand() limit 1[Ô]
myComando.CommandType = CommandType.Text
dApt.SelectCommand = myComando
dApt.Fill(ds)
Application.DoEvents()
MsgBox([Ô]cod [Ô] & ds.Tables(0).Rows(0).Item([Ô]codigo[Ô]))
e esta dando erro na linha
dApt.Fill(ds)
Erro de sintaxe (operador faltando) na expressão de consulta [ô]rand() limit 1[ô].
e não estou conseguindo entender porque.... a tabela tem registro.
No ACCESS, tente assim:
SELECT TOP 1 *
FROM tabela
ORDER BY RND(NOW()+campoID)
Tópico encerrado , respostas não são mais permitidas