我有一个带有三个类别的问题的表。
我通过使用以下内容得到一个随机的问题:
SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1
,但该表也有一个称为QCategory的字段,总共有3个类别。我想要的是SQL查询要从3个类别中的每个类别中获得一个问题(因此总共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