2015-10-18 55 views
1

我正在創建一個新聞源,並且試圖一次允許三個新聞更新(每個人)。只允許三個新聞項目

MySQL數據庫的結構如下:

username|update1|update2|update3 

bill  foo  bar  baz 

我想知道怎樣才能讓這個當比爾發佈一個新的消息更新:

  • update3值會被刪除
  • update2的值將被移動到update3
  • 的值從update1將移至update2
  • 和新的消息更新將在update1

在一個簡單的MySQL查詢放在這將是可能的,或者我將不得不使用PHP來做到這一點?

回答

2

試試這個:

UPDATE table 
    SET update3 = update2, 
     update2 = update1, 
     update1 = {$your_input} 
    WHERE your_filter = your_condition 
+0

由於獲得爲了答案!完全忘了你可以一次設置多個項目! –

+0

@TheOnlyOneAround:這樣一個系統的一個可能的缺點是,沒有辦法找出過去會顯示什麼。此外,在系統故障的情況下(如果Marco的查詢被意外或惡意觸發),它會清除更新。 – wallyk

+0

@wallyk你是對的,開始更好地思考你的答案 –

2

相反非規範化像數據,保持乾淨:

timestamp|username|update 

那麼最後三次更新可以隨時

select * 
from updates 
where username = 'the user' 
order by timestamp descending 
limit 3 
相關問題