Ber*_*ale 12 postgresql plpgsql
我想通过 id 从我的表中随机获取一行。
我的表:
ID|Word |Dificult|Category_id|
1 |'Dumb' |'Easy' | 3 |
2 |'Leopard'|'Medium'| 6 |
Run Code Online (Sandbox Code Playgroud)
如果我的用户选择了一个类别和一个困难,我会选择一个带有用户参数的随机单词,例如:
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
Run Code Online (Sandbox Code Playgroud)
我不知道如何获得那个随机行 id ( raffle.id
)。
注意它必须遵循用户的选择条件。
Cra*_*ger 13
要选择随机行,请参阅:
SELECT *
FROM words
WHERE Difficult = 'Easy' AND Category_id = 3
ORDER BY random()
LIMIT 1;
Run Code Online (Sandbox Code Playgroud)
从 9.5 开始,还有TABLESAMPLE
选项;有关详细信息,请参阅文档SELECT
TABLESAMPLE
。