我到处搜索,但找不到满足我问题的答案。 我想按发布日期对 MySQL 结果进行排序。
我会准确解释我想做什么。
所有帖子都保存到数据库中,包含以下字段
Post_id = auto increment
post_title = varchar
posted_date = datetime (gmdate('Y-m-d H:i:s') )
post_status = int
post_published_date = datetime (gmdate('Y-m-d H:i:s') )
保存帖子后,我希望按 post_published 日期显示帖子顺序。当插入帖子时,post_published_date 将为 NULL,当将 post_status 更改为 1 时,将添加 post_published_date 日期。
所以我按如下顺序排列帖子
SELECT * FROM posts WHERE post_status = 1 ORDER BY post_published_date DESC, Post_id DESC
下面也试过了
SELECT * FROM posts WHERE post_status = 1 ORDER BY STR_TO_DATE(post_published_date, '%Y-%m-%d %H:%i:%s')
DESC, Post_id DESC
以上都很好用。我的问题是哪种方法是上面最好的方法,或者是否有更好的方法来做到这一点(性能方面)。 感谢您的宝贵时间。
编辑: 另外我想知道我是否需要对 MySQL 日期时间列使用 STR_TO_DATE
。
最佳答案
最好只有您可以使用以下查询:
SELECT * FROM posts WHERE post_status = 1 ORDER BY post_published_date DESC
关于php - 最佳实践按发布日期排序帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41256379/