我有几个值存储在我的数据库中作为DATETIME
数据类型( YYYY-MM-DD HH:MM:SS ),我一直试图让它们进入降序 - 从最小到最小(在日期的情况下 - 从最新到最旧),但奇怪的是,它似乎完全忽略了 DESC 运算符的存在。
SQL查询(缩写):
SELECT post_datetime FROM post WHERE type=`published` ORDER BY post_datetime DESC LIMIT 3
然后,他们按此顺序打印:
2014-04-30 11:55:11
2014-07-01 12:25:40
2014-07-02 12:28:03
(那些恰好是数据库中“最早的”日期条目)
解决方案?我会注意到在其他东西上使用DESC(例如正常数字)也不起作用。我检查了我的语法,试过引号,没有引号,双引号和&这样
(注意 - 几个小时后我将无法回答任何其他问题,但我会在回来后尽力回复)
(17年6月11日)
编辑:为了澄清,对于未来的读者来说,语法拼写错误与问题无关,并且在输入示例时是我的错误。我一直在使用自制查询构建器,以至于我当时忘记了正确的语法。问题在于我的程序逻辑 - 而不是查询。上面的示例已经过编辑,是正确的解决方案,适合任何想要执行上述任务的人。对不起,这已被观看超过5万次......但现在你知道了。
答案 0 :(得分:13)
AND
放在ORDER BY
和LIMIT
=
关键字和条件ORDER BY
醇>
所以你的查询看起来像:
LIMIT
答案 1 :(得分:3)
尝试:
SELECT post_datetime
FROM post
WHERE type = 'published'
ORDER BY post_datetime DESC
LIMIT 3
答案 2 :(得分:2)
删除引号:
是:
ORDER BY = 'post_datetime DESC' AND LIMIT = '3'
应该是:
ORDER BY post_datetime DESC LIMIT 3