我有一张桌子,上面有三类问题。
我使用以下方法得到一个随机问题:
SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1
但是该表还有一个名为 qCategory 的字段,其中总共有 3 个类别。我想要的是从 3 个类别中的每个类别中获取一个问题的 SQL 查询(总共 3 个随机问题)。
我有一张桌子,上面有三类问题。
我使用以下方法得到一个随机问题:
SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1
但是该表还有一个名为 qCategory 的字段,其中总共有 3 个类别。我想要的是从 3 个类别中的每个类别中获取一个问题的 SQL 查询(总共 3 个随机问题)。
您可以使用以下方法组合三个查询的结果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)
一种方法是使用GROUP BY
:
SELECT * FROM tblQuestions ORDER BY RAND() GROUP BY qCategory