4
我有一个包含三类问题的表。3组中的每组获得一条随机记录
我使用下列获得一个随机问题:
SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1
但该表还具有一个名为qCategory场,其中有3个类别的总额。我想要的是SQL查询从3个类别(总共3个随机问题)中获取一个问题。
我有一个包含三类问题的表。3组中的每组获得一条随机记录
我使用下列获得一个随机问题:
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
如若这项工作为MySQL?我在phpMyAdmin中试过这个查询,但得到一个错误:“UNION的使用不正确”。 – janlindso
@ user880980:是的,它可以工作......我只是忘了括号。查看更新。 –
作品!非常感谢! – janlindso