Eu quero obter uma linha aleatória da minha tabela por id.
Minha mesa:
ID|Word |Dificult|Category_id|
1 |'Dumb' |'Easy' | 3 |
2 |'Leopard'|'Medium'| 6 |
Se meu usuário seleciona uma categoria e uma dificuldade, eu escolho uma palavra aleatória com parâmetros do usuário, como:
idRaffle := raffle.id;
-- raffle.id = An id that postgres will bring me by some raffle function.
d := 'Easy';
c := 3;
select * from words where id=idRaffle and Dificult=d and Category_id=c
raffle.id
Eu não sei como obter esse id de linha aleatório ( raffle.id
).
Observe que ele deve seguir as condições de seleção do usuário.
Para escolher uma linha aleatória, consulte:
seleção rápida de linhas aleatórias no Postgres
Desde 9.5 também existe a
TABLESAMPLE
opção ; consulte a documentação paraSELECT
obter detalhes sobre oTABLESAMPLE
.