获得3组中每一组的随机记录

时间:2012-12-26 01:22:21

标签: mysql

我有一个包含三个类别问题的表格。

我使用以下内容得到一个随机问题:

SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1

但是该表还有一个名为qCategory的字段,其中总共有3个类别。我想要的是SQL查询从3个类别中的每个类别中获取一个问题(总共3个随机问题)。

2 个答案:

答案 0 :(得分:6)

您可以使用UNION ALL

组合三个查询的结果
(SELECT * FROM tblQuestions WHERE qCategory='A' ORDER BY RAND() LIMIT 1)
UNION ALL
(SELECT * FROM tblQuestions WHERE qCategory='B' ORDER BY RAND() LIMIT 1)
UNION ALL
(SELECT * FROM tblQuestions WHERE qCategory='C' ORDER BY RAND() LIMIT 1)

答案 1 :(得分:2)

一种方法是使用GROUP BY

SELECT * FROM tblQuestions ORDER BY RAND() GROUP BY qCategory