• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Gonçalo_ssb

registos aleatórios

7 mensagens neste tópico

Alguém sabe uma query que me seleccione 4 registos alteatórios de uma base de dados SQL?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu já fiz isso no Microsoft SQL Server, mas não me lembro como foi :|

De qualquer maneira, amanhã, posso ver o código onde isso tá metido (no trabalho).

Se bem me lembro, a função rand() do exemplo abaixo não funciona no MSSQL.

Aqui em casa, experimentei agora mesmo com o Mysql e o exemplo abaixo funciona.

Para outras base de dados (Oracle, Postgresql, sqlite, ...) não sei.

Nem sei se o Standard SQL tem alguma coisa para isso (*).

SELECT col1, col2, ..., colN
FROM tabela
WHERE 1=1
ORDER BY rand()
LIMIT 4

(*) Alguém sabe onde é que eu posso arranjar, sem pagar!, o Standard do SQL (SQL92 ou outro)?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No trabalho tenho um gerador de password aleatórios em MSSQL.

Tenho uma tabela "words" com milhentas palavras, e tenho um query para ir buscar uma palavra aleatória.

Esse query é

select word
from word
where id = convert(int, rand()*( select count(*) from word )) + 1

Edit: Atenção que a tabela word tem o campo id a começar em 1 e sem "buracos" até ao registo com o id maior.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

No trabalho tenho um gerador de password aleatórios em MSSQL.

Tenho uma tabela "words" com milhentas palavras, e tenho um query para ir buscar uma palavra aleatória.

Esse query é

select word
from word
where id = convert(int, rand()*( select count(*) from word )) + 1

Edit: Atenção que a tabela word tem o campo id a começar em 1 e sem "buracos" até ao registo com o id maior.

não seria melhor (mais seguro) teres uma lista de caracteres e fazeres um get a um x numero de caracteres? alias, isso nao seria possivel fazer mesmo alguma coisa que gerasse isso sem lista nenhuma?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, mas eu não quero uma password do tipo "rie6toTh".

Usando palavras duma lista e um número aleatório, obtenho passwords do tipo "chaga81pronto", que tem 'segurança' suficiente até o dono da password a mudar ...

A razão de ser da password simples, é que a transmissão da password, do servidor para o utilizador final, passa por seres humanos. Os utilizadores finaies da aplicação onde apliquei isto podem não ter endereço de mail. A password pode ser transmitida por telefone, por memo, por sinais de fumo, ... (e claro, por mail também (às vezes automático)).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ou entendi mal ou o foco da questão inicial mudou de registros aleatórios para password aleatória.

Se a questão for registros aleatórios e se estes registros tiverem um campo numérico inteiro, um pequeno código dentro de um loop poderá criar números aleatórios e verificar se algum coincide com uma linha do BD. Após a 4ª coincidência, pára.

Quanto à segurança da password lembro que é fundamental criptografar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora