我有单表,我把所有内容都放在了。每行是一个帖子。我希望能够操纵帖子的顺序,以便我可以将其中的一些推到顶部或底部......
此外,每个帖子属于某个类别。 (我相信在订购特定类别的帖子时,附加参数会有所不同)
请给我一些提示/代码模式你会怎么做?
P.S。我不想添加新表,建立更多关系,我希望它尽可能简单......
答案 0 :(得分:0)
我个人会通过向表中添加一个类似100的默认值的sort_index字段来完成此操作。然后,您可以通过减少排序顺序来推送帖子,或者通过增加它来将它们推到顶部。通过从特定数字开始,您将为帖子的默认排序建立基线。
SELECT * FROM `posts` ORDER BY sort_index DESC, date_posted DESC
这将确保具有相同排序索引的帖子根据发布日期获得二级排序。
它还允许您随着时间的推移轻松自动化使帖子在排名中下降,使用小脚本设置作为cron来逐渐减少帖子的排序索引,直到它们达到默认值。
答案 1 :(得分:0)
假设您有一个包含以下列的表:
您可以添加一个名为rank的新整数列。使用新的排名列,您可以按照以下顺序订购帖子:
SELECT `post` from tblPosts order by category, rank;
现在,您可以通过为其分配排名来订购帖子。在上面的示例中,较小的数字将列在顶部,较大的数字将列在底部。