我的网站上有很多帖子。每个帖子在mysql中包含postID
。例如,如果我创建3个帖子(在新网站上),则有3个postID
:1,2,3
。如果我删除最后一个并添加另一个,我会有3个帖子ID,但是:1,2,4
。我相信你知道我在说什么。
问题是,首先我添加了大约10000个帖子。我们称他们为"X"
。其次,我添加了2000个帖子,我将其称为"Y"
。
目前我网站上的帖子订单是从最旧到最新,所以它是:
postID
1
2
3
....
9999
10000 (last "X" post)
10001 (first "Y" post)
10002
...
12000 (last "Y" post)
现在我想添加其他帖子,让我们称之为"Z"
。现在订单是从最旧到最新,所以它将是:X--Y--Z
。 “Z”将出现在我网站的主页上(最新帖子)。
我想要做的是按此顺序订购帖子:Y-X-Z
。因此,PostID
到10000
的{{1}}将会最后显示。
我想我可以为12000
到12000
的每个PostID添加1
值,这样它们就是最新的。我对吗?这是满足我需求的最佳解决方案吗?
答案 0 :(得分:0)
你可以在order by子句中使用case函数,如:
order by case when postID > 10000 and postID < 12001 then 1 when postID < 10001 then 2 else 3 end, postID;