我的数据库中有一个表叫做 mcq-quiz
有2000条记录:
id question category
1 q1 c1
2 q2 c1
3 q3 c1
4 q4 c2
5 q5 c2
6 q6 c3
7 q7 c3
8 q8 c4
9 q9 c4
10 q10 c5
我想要一张特定类别的唱片。。。但记录应该是随机的。
我尝试了以下查询:
SELECT id, question, category FROM `mcq_quiz` where category in(c1,c2,c3,c4,c5) group by category
它做得很好,但每次都检索相同的记录。但我每次都想要一张新的随机记录。
我也试过 rand()
函数,它每次检索相同的记录,但更改顺序。但每次我都需要一个随机记录。
1条答案
按热度按时间3mpgtkmj1#
这是每个组最大n个问题的一个变体,在这里,每个组需要一个随机记录。
可以使用子查询进行筛选:
当然,如果您运行的是mysql 8.0,则可以使用窗口函数: