2016-08-25 25 views
0

我正在尋找解決方案,在兩個帖子之間添加帖子並將新訂單保存到數據庫中。使用SQL查詢更新帖子的訂單

我添加了對常規帖子的訂單支持,並且計劃使用此字段來訂購頁面中的帖子。新帖子是通過AJAX從同一頁面創建的。所有帖子都有相同的父項。

所以我必須:

  1. 波斯塔
  2. PostB
  3. POSTC

現在我想創建波斯塔和PostB之間的新職位(PostD)。因此,新的秩序將是

  1. 波斯塔
  2. PostD
  3. PostB
  4. POSTC

所以訂單號會對帖子B和C和PostD被分配要更新當新的PostD被保存時,訂單編號2。

我想知道,什麼是最好的解決方案。也許我可以做一個SQL查詢,做這樣的事情:

獲得所有職位與父母XX和訂單號> =新的職位號碼,並添加+1這些職位的訂單號碼。

任何幫助將不勝感激,謝謝!

+0

查看交易。步驟1.使用排序參考> = 2更新每行的排序參考。步驟2.插入新行。我假設郵政專欄是您的主要關鍵。 – Strawberry

+0

謝謝!我會試試這個。 –

+0

只需添加一個時間戳列? (那麼順序是不重要的。) – jarlh

回答

-1

一直使用的10個步驟,讓你有空間,其間的9個職位..

+1

第10個帖子呢? – Strawberry

+0

嘿,爲什麼-1?這是問題的解決方案。我同意這不是最優雅的方式,但它完成了工作 – verhie

+0

對不起,但這不是我問的東西...謝謝! –

0

算法的使用步驟:

  • 如果新的崗位後,最後 - 秩序號碼設置爲最後號碼 + 10000
  • 否則獲得算術平均值訂單號之間之前之後帖子
  • 如果發帖之間沒有空閒數字 - 運行完整重新編號帖子分支。插入新行後。

重新編號查詢:

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