【问题标题】:Phpmyadmin- Display A specific category after every four Category rowsPhpmyadmin- 每四个类别行后显示一个特定类别
【发布时间】:2018-09-03 16:52:08
【问题描述】:

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

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

您可以参考上图。

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

感谢您的帮助!!!

【问题讨论】:

  • 请向我们展示预期的结果。谢谢。
  • @anonyXmous 我已将输出附加到问题中。谢谢!!
  • 您为什么要更改 ID?是否还需要将旧 ID 更新为新 ID?
  • @anonyXmous 不,我不必更改 Id。只是我希望每四个不同的 Id 后 CategoryId 为 1
  • @anonyXmous 是的,当然..再次非常感谢您!!

标签: mysql phpmyadmin


【解决方案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

【讨论】:

  • 谢谢你,这实际上是我需要的。
  • 如果您喜欢我的回答,请点赞/接受。谢谢。
猜你喜欢
  • 1970-01-01
  • 2011-05-04
  • 2011-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-25
  • 1970-01-01
相关资源
最近更新 更多