获取一个学生2个不同的限制条件
问题描述:
我有学生的表列表:获取一个学生2个不同的限制条件
Student SECTION
student1 A
student2 A
student3 A
student4 A
student5 B
student6 B
student7 B
student8 B
我想获得总随机5名学生3名A区学生和2名B组学生
案例:如果有2个章节记录,那么我将只有4个记录作为结果权利,如果没有足够的学生,我可以保持总共5条记录,其中包括A部分& B.你可以建议我一个解决方案
做过任何一次推荐一个简单的SQL查询
答
SELECT student, section
FROM
(SELECT 1 seq, student, section FROM my_table WHERE section = 'a' ORDER BY RAND() LIMIT 3) x
UNION
(SELECT 2 seq, student, section FROM my_table WHERE section = 'b')
ORDER
BY seq, RAND() LIMIT 5;
+1
看起来不错,第一个查询的方式我会从第二个查询的权利中取出3条记录。 – Developer
+1
是的。实际上'seq'在这个例子中并不是必须的,因为你可以通过RAND()来代替。 – Strawberry
提及预期输出 –
这是非常相似的http://*.com/questions/41163360/get-list-特定的2限制的记录 - 从单表在单个查询 – Strawberry
这看起来好像它通过自动翻译器,你可以扩展你想要的?另外,“随机”也许是编程中最困难的事情,你究竟是什么意思? – HoneyBadger