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