mysql查找每个id的最新内容

时间:2016-04-27 16:24:47

标签: mysql

我的第一篇文章......

我有一个新闻故事表,其中用户标记故事,优先级1,2,3,4,用于在网站主页上显示。

问题在于,当他们添加故事时,旧的故事会被推到CMS中的第二页,第三页等。然后他们标记一个新的“1”,“2”等,而不清除旧的1s,2s等 - 它们保留在数据中,以防新的数字1被“降级”(删除标记)或删除。 / p>

我想知道的是新闻和标题,最新的每个数字“1”,“2”,“3”和“4”。

我发现了一些类似的帖子,但它的标志字段(称为“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。

希望这是有道理的,任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

查看SQL文档中order by章中的关键字limitselect

答案 1 :(得分:0)

答案是UNION所有的陈述。对我来说,这是4个单独的select语句,每个语句都有一个限制1并且它们之间的联合。它确实有效,但看起来有点笨重。