使用SQL查询更新帖子的顺序

时间:2016-08-25 13:37:07

标签: mysql sql database wordpress postorder

我正在寻找在两个帖子之间添加帖子的解决方案,并将新订单保存在数据库中。

我添加了常规帖子的订单支持,我打算使用此字段来订购页面中的帖子。新帖子是通过AJAX从同一页面创建的。所有帖子都有相同的父母。

所以我有:

  1. POSTA
  2. PostB
  3. POSTC
  4. 现在我想在PostA和PostB之间创建一个新帖子(PostD)。所以新订单将是

    1. POSTA
    2. PostD
    3. PostB
    4. POSTC
    5. 因此,在保存新PostD时,必须为帖子B和C更新订单号,并为PostD分配订单号2。

      我想知道,对此最好的解决办法是什么。也许我可以做一个像这样的SQL查询:

      获取所有帖子,邮寄地址为XX,订单号为> =新帖子编号,并为这些帖子的订单号添加+1。

      任何帮助都将受到高度赞赏,谢谢!

2 个答案:

答案 0 :(得分:0)

使用10000步。

算法:

  • 如果最后一个新帖子 - 订单号设置为最后 + 10000
  • 否则之前的之后的
  • 之间的算术平均订单号
  • 如果帖子之间没有免费号码 - 运行完全重新编号的帖子分支。插入新行后。

重新编号查询:

update posts
   set number=(select @i:=@i+10000)
 where (select @i:=1)=1 and (condition_for_select_posts_branch)
 order by number

答案 1 :(得分:-1)

始终使用10的步骤,因此您可以在中间添加9个额外的帖子。