Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
uso a seguinte query para selecionar 2 registros aleatórios:
"select top 2 id, musico, release from musi where ativo=true and imagem_m=true ORDER BY Rnd(Int(Now()[ID])-Now()[ID]);"
Agora quero evitar que um registro seja lido, ou seja, q um id não esteja no resultado.
Este id a ser evitado nos resultados sempre muda.
Simplesmente pensei em adicionar na cláusula where o seguinte: " and id <>" & id_negado
mas, acredito, q por causa do order by naum funciona.
Se alguém puder me orientar, o informar a query correta fico grato.
valeu.
A princípio funcionaria.
entaum... mas naum funciona.e o estranho ( ou naum ) eh o seguinte: se usar, por exemplo: id=100 dah certo - soh mostra o id 100 no resultado.se usar id<>100... não funciona. ele acaba mostrando o id 100
bom.. se sua tabela não for grande.. dá para fazer com subquery...
SELECT top 2 id, musico, release FROM ( SELECT id, musico, release FROM musi WHERE id <> 100)WHERE ativo=true and imagem_m=true ORDER BY Rnd(Int(Now()*[ID])-Now()*[ID]);"
;)se voce estiver usando sqlserver como database, pode utilizar uma função que é nativa do mesmo q eh a NewID()...
dae você so troca la no OrderBy e coloca ele...
fika da seguinte forma o codigo:
SELECT top 2 id, musico, release FROM ( SELECT id, musico, release FROM musi WHERE id <> 100)WHERE ativo=true and imagem_m=true ORDER BY NewID();"
tenta ae e posta.. falows...;)
A princípio funcionaria.