Phpmyadmin-显示每四个类别行后的特定类别

时间:2018-03-25 13:18:27

标签: mysql phpmyadmin

我有一个包含四列ID,名称,性别,CategoryID和100条记录的表格。enter image description here enter image description here

在categoryID列中,我有categoryID' s范围从1到5,现在我想在每四行后显示类别1。 例如,如果我的第一行有CategoryId 1,那么在4行后第5行应该有categoryId 1然后再有4行具有不同的类别,之后的行应该有CategoryId 1

您可以参考上面附带的图片。

我希望结果是这样的enter image description here enter image description here

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:1)

我使用增量变量为categoryID = 1和其他类别分配行号。然后我按照这个等级和类别ID对它们进行排序。见下面的查询。

select ID,Name,Gender,CategoryID
from (
select ID,Name,Gender,CategoryID,@rnk:=@rnk+5 as rnk
from table1, (select @rnk:=-4) r
where categoryID=1
union all
select ID,Name,Gender,CategoryID,
  case when mod(@rnk2,5)=0 then @rnk2:=@rnk2+2
  else @rnk2:=@rnk2+1 end as rnk
from table1, (select @rnk2:=0) r
where categoryID<>1
)t
order by rnk, categoryID

在此处查看演示:http://sqlfiddle.com/#!9/7a0d8/1