我有几个值存储在我的数据库中作为DATETIME
数据类型(YYYY-MM-DD HH:MM:SS),我一直在尝试按降序排列 - 最大的至少(在日期的情况下 - 最新的但是,奇怪的是,它似乎完全忽略了DESC运算符的存在.
SQL查询(缩写):
SELECT post_datetime FROM post WHERE type=`published` ORDER BY post_datetime DESC LIMIT 3
Run Code Online (Sandbox Code Playgroud)
然后,他们按此顺序打印:
2014-04-30 11:55:11
2014-07-01 12:25:40
2014-07-02 12:28:03
Run Code Online (Sandbox Code Playgroud)
(那些恰好是数据库中"最早的"日期条目)
解?我会注意到在其他东西上使用DESC(例如正常数字)也不起作用.我检查了我的语法,试过引号,没有引号,双引号等.
(注意 - 几个小时后我将无法回答任何其他问题,但是一旦我回来,我会尽力回复)
(17年6月11日)
编辑:为了澄清,对于未来的读者,语法拼写错误与问题无关,并且在输入示例时是我的错误.我一直在使用自制查询构建器,以至于我当时忘记了正确的语法.问题在于我的程序逻辑 - 而不是查询.以上示例已经过编辑,对于任何想要执行上述任务的人来说都是正确的解决方案.对不起,这已被观看超过5万次...但现在你知道了.
如果不向你展示我所拥有的东西,就很难解释这个问题,所以我们将从那开始:
查询:
SELECT goodies.title FROM `goodies` LEFT JOIN `goody_images`
ON goodies.id=goody_images.goodie_id
Run Code Online (Sandbox Code Playgroud)
原始结果:
糖果
糖果
帽
问题:
它为每个连接值产生额外的结果.由于两人在entires的goody_images有一个goodie_id的1,它打印相应的标题从糖果的两倍,因此,为什么我们看到的结果是糖果的两倍.无论匹配JOIN结果的数量是多少,我都需要它只给我一次标题.
这是可能的,还是我最好运行两个单独的查询?
在PHP的上下文中,我试图获得两个值:
- 标题为
-And和带有匹配图像的数组.
所有这些已经完成的编程完全可以运行 - 问题只在于正确地获得结果.
+ 上面的查询是为了简单起见而缩写的