我想从数据库中获得4个不同类别的50个问题。我想要从4个不同类别中选择不同数量的问题;我的结果集必须包含第一类12个问题,第二类20个问题,第三类10和第四类8个问题。我的问题表中总共有50个问题。 我为此使用了 LIMIT 函数。但是当我有不止一列的时候,我很困惑。
这是我的桌子:
| category_id| question-text| Col3 |
|------------|--------------|------|
| 1 | sample | ieb |
| 2 | sample | aem |
| 3 | sample | atd |
| 4 | sample | oui |
| 1 | sample | ieb |
| 2 | sample | aem |
| 3 | sample | atd |
| 4 | sample | oui |
| 1 | sample | ieb |
| 2 | sample | aem |
| 3 | sample | atd |
| 4 | sample | oui |
| 1 | sample | ieb |
| 2 | sample | aem |
| 3 | sample | atd |
| 4 | sample | oui |
我需要这个结果: 类别1中有5个问题。 类别2中的3个问题。 类别3中的2个问题。 类别4中有7个问题。
答案 0 :(得分:1)
您可以使用UNION
查询一次获得所有问题:
(SELECT * FROM question WHERE categori_id=1 ORDER BY RAND() LIMIT 12)
UNION
(SELECT * FROM question WHERE categori_id=2 ORDER BY RAND() LIMIT 20)
UNION
(SELECT * FROM question WHERE categori_id=3 ORDER BY RAND() LIMIT 10)
UNION
(SELECT * FROM question WHERE categori_id=4 ORDER BY RAND() LIMIT 8)