我有一个学生列表:
Student SECTION student1 A student2 A student3 A student4 A student5 B student6 B student7 B student8 B
我想随机获得总计5名学生3名A科学生和2名B科学生
完成一次“建议简单的SQL查询”
示例:我想随机合并以下查询
select * from student where SECTION='A' LIMIT 3 select * from student where SECTION='B' LIMIT 2
您非常接近:
(select * from student where SECTION = 'A' order by rand() LIMIT 3 ) union all (select * from student where SECTION = 'B' order by rand() LIMIT 2 ) order by rand();
子查询用于order by rand()获取每个年级的随机学生。外部order by rand()将五个学生随机分组。
order by rand()
注意:这是完成所需内容的最简单方法。如果students表的大小适中,而性能是一个问题,则可以选择其他解决方案。
students