我的第一篇文章......
我有一个新闻故事表,其中用户标记故事,优先级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。
希望这是有道理的,任何帮助表示赞赏。
答案 0 :(得分:0)
查看SQL文档中order by
章中的关键字limit
和select
答案 1 :(得分:0)
答案是UNION所有的陈述。对我来说,这是4个单独的select语句,每个语句都有一个限制1并且它们之间的联合。它确实有效,但看起来有点笨重。