我通过以下方式在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因此,具有相同类型的记录将分布在结果上,并且尽可能多地不会留在一起
发布于 2018-06-08 00:18:21
如前所述,如果您在应用程序代码中执行这种类型的排序会更好,在Mysql中,您可以使用用户定义的变量来执行此操作。
首先根据类型划分数据,为产品获取数据并分配行号,然后对类型image的第二个数据集执行相同的操作,然后使用联合操作合并这些集,然后按行号对它们进行排序
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 descdemo
https://stackoverflow.com/questions/50745667
复制相似问题