在平常的网站中,肯定会有新闻或者一些信息的发布。但是发布出去之后,关于这些文章的排序会是一个问题。当然对于一些大的网站,可能会有一些复杂的排序规则,会根据一些权重进行排序。但是对于一个普通的小一点的网站,我们一般排序,可能就只是增加一个排序字段,然后按照升序进行排序,或者直接按照创建时间进行降序排序。
如果我们按照排序字段进行排序的话,会产生一个问题,当增加一篇文章信息的时候,这个排序字段的值是什么,如果只是一个默认值的话,那么所有的文章可能就都是同样的值,所以排序的时候,则需要自己手动排序。所以,现在有一个解决方案,每增加一篇文章,则会自动生成一个默认的排序值,并且每篇文章都会有自己的排序值。这样,对于运营人员也能够方便操作。
解决思路:
增加文章:默认该文章的排序值为0,其他文章的排序值,则自动加一。
修改文章:如果该文章的排序值有变动的话,需要进行分析,如果排序值靠前了的话,则除了要交换两个排序值,中间的排序值需要加1。如果排序值靠后了的话,则除了要交换两个排序值,中间的排序值需要减一。
删除文章:则该文章之后的排序值,需要都加1
下架:可以将下架的文章,排序值,统一设定一个值
一个小知识点:
如下表:
怎么能够将该列表的值,按照isrelease 0,2,1的顺序排序
select *
from t_button
ORDER BY CASE when isrelease=0 then 3 else isrelease end desc
结果: