如何更改展示位置订单

时间:2016-06-24 19:59:53

标签: mysql

我的网站上有很多帖子。每个帖子在mysql中包含postID。例如,如果我创建3个帖子(在新网站上),则有3个postID1,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。因此,PostID10000的{​​{1}}将会最后显示。

我想我可以为1200012000的每个PostID添加1值,这样它们就是最新的。我对吗?这是满足我需求的最佳解决方案吗?

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;