我对这个我想要做的查询感到疯狂。 我有谷歌它,论坛但不幸的是没有运气找到解决方案。
让我解释一下我想要实现的目标:
我有这张桌子:
+----------+-------------+
|Advert_Id | Advert_Type |
+----------+-------------+
| 1 | 1 |
| 2 | 3 |
| 3 | 1 |
| 4 | 2 |
| 5 | 2 |
| 6 | 3 |
| 7 | 1 |
| 8 | 1 |
| 9 | 1 |
| 10 | 1 |
| 11 | 1 |
| 12 | 1 |
+----------+-------------+
我需要什么:
在“BLOCKS”OF 4中选择 RAND Advert_Id ,其中 ORDER BY Advert_Type (从3到1,例如3,2,1和1) 因此,firt块将是3,2,1,1秒块3,2,1,1等等......
期望输出应为:
+----------+-------------+
|Advert_Id | Advert_Type |
+----------+-------------+
| 2 | 3 |
| 4 | 2 |
| 9 | 1 |
| 12 | 1 |
| 6 | 3 |
| 5 | 2 |
| 1 | 1 |
| 8 | 1 |
| 10 | 1 |
| 3 | 1 |
| 11 | 1 |
| 7 | 1 |
+----------+-------------+
我想要实现的是:我有一个包含大量广告的表ADVERT,因此每个广告的类型为ADVERT_TYPE(1,2或3)。 所以我需要在我的网站上显示一个广告类型3,然后是另一个广告类型2,然后是另外两个广告类型1.正如您所看到的,我们有四个广告块。同样适用于其他人。 但正如你在我的桌子上看到的那样。我有更多的广告与类型1,所以它将重复,直到我显示所有。
再次感谢,
答案 0 :(得分:0)
我不确定你能在MySQL中完全像这样做吗
在MySQL
之后,有两种方法可以解决这个问题1)在查询
之后以编程方式执行例如。将所有Advert_Type = 3加载到一个数组中,将All 2加载到一个数组中,将所有1加载到另一个数组中并合并它们。
2)在你的表中添加一个级别字段,然后按级别排序(当然,你可能希望的任何随机性都会从窗口中消失)