我想从数据库中获取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个问题.
解决方法:
您可以使用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)
标签:php,sql,mysql
来源: https://codeday.me/bug/20191013/1908849.html