Mysql多样化结果

时间:2018-06-07 16:01:06

标签: mysql

我通过以下方式在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

因此,相同类型的记录将在结果上传播 尽可能不会在一起

1 个答案:

答案 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

demo