我的第一篇文章...mysql找到最新的每個ID
我有一個新聞故事表,其中用戶標記故事,優先級1,2,3,4在網站主頁上顯示。
問題是,當他們添加故事時,舊版本會被推送到CMS中的第二頁,第三頁等。然後,他們會標記新的「1」,「2」等,而不清除舊的1,2等等 - 這些數據仍保留在數據中,以防萬一新數字1被「降級」(刪除該標誌)或被刪除。
我想要得到的是每個數字「1」,「2」,「3」和「4」中最新的newsid和標題。
我發現了一些類似的帖子,但它的標記字段(稱爲「xorder」)的重要性不是時間戳。在「newsStories」表中的相關字段下面:
newsid int
headline varchar(60)
xorder int (number or null)
xtimestamp datetime - this is the publish date
在這種情況下的xtimestamp場是他們想要的新聞報道出現(發佈日期),而不是一個時間戳字段作爲它的日期/時間重要,這將由MySQL更新。我們不想顯示發佈日期/時間大於當前系統時間戳的故事(允許故事被禁止)。我們在網頁加載時生成查詢,因此我們的條件讀取的內容類似於:
where xorder IS NOT NULL
AND xorder > 0
AND xtimestamp <= 201604271800 (for 6pm today)
(由於還有其他標準,這略有簡化)。
我按xtimestamp desc和xorder asc進行排序,只是找到前4條記錄,但是這並沒有給出正確的xorder。
希望這是有道理的,任何幫助表示讚賞。
所以你想從1 - 4訂購xorder?只需添加ORDER BY xorder ASC – Matt
[獲得每組分組結果的前n條記錄]的可能副本(http://stackoverflow.com/questions/12113699/get-top-n-records-for-each-group-of - 結果) – Shadow
order by xorder ASC讓我全部1,然後所有的2。我想要最近的1,然後是最近的2,然後是最近的3,然後是最近的4.By「最近的」,我的意思是xtimestamp字段。 –