我通过以下方式在db中获得了表:
id Name Type
1. Aero. Product
2. Ddd. Product
3. Sass. Image
4. Rrrrr. Image
这只是为了更大规模地理解和实际表格。 所以问题是如何得到多样化的结果,所以产品类型不会像产品,产品,图像,图像
如果我愿意select * from table where 1 order by ‘id’
Results having grouped “type”
我希望得到像
1 blabla product
3 blabla image
2 blabla product
4 blabla image
因此,相同类型的记录将在结果上传播 尽可能不会在一起
答案 0 :(得分:0)
正如已经建议的那样,如果你在应用程序代码中进行这种类型的排序会更好,在Mysql中你可以通过使用用户定义的变量来做到这一点。
首先根据您的类型中断数据,获取产品数据并分配行号,并对类型图像的第二个数据集执行相同操作,然后使用union操作合并这些集合,然后按行号对它们进行排序
select *
from(
select d1.*, @row1:= @row1 + 1 as row
from demo d1,
(select @row1:=0) t1
where `Type` = 'Product'
union all
select d2.*, @row2:= @row2 + 1 as row
from demo d2,
(select @row2:=0) t2
where `Type` = 'Image'
) t
order by t.row, t.Type desc