4

我有一张桌子,上面有三类问题。

我使用以下方法得到一个随机问题:

SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1

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

4

2 回答 2

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)
于 2012-12-26T01:25:17.540 回答
2

一种方法是使用GROUP BY

SELECT * FROM tblQuestions ORDER BY RAND() GROUP BY qCategory
于 2012-12-26T01:27:00.757 回答