按发布日期排列的最佳实践订单

时间:2016-12-21 06:21:14

标签: php mysql

我到处搜索,但我无法得到满足我的问题的答案。 我想按发布日期订购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

以上都很有效。我的问题是哪个是上面的最佳方法,还是有更好的方法(性能明智)。 感谢你的时间。

编辑:此外,我想知道是否需要将STR_TO_DATE用于MySQL日期时间列。

3 个答案:

答案 0 :(得分:0)

只有你可以使用以下查询才是最好的:

SELECT * FROM posts WHERE post_status = 1 ORDER BY post_published_date DESC

答案 1 :(得分:0)

最好的方法是  ORDER BY post_published_date DESC  因为它只是为poststatus = 1

降序所有帖子

代码:

SELECT * FROM posts WHERE post_status = 1 ORDER BY post_published_date DESC, Post_id DESC

答案 2 :(得分:-1)

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

尝试此查询。刚刚在STR_TO_DATE函数后删除了分号。 你在使用Wordpress吗?

相关问题