Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在MySQL中使用WHERE和MAX获取最新数据_Php_Mysql_Sql - Fatal编程技术网

Php 如何在MySQL中使用WHERE和MAX获取最新数据

Php 如何在MySQL中使用WHERE和MAX获取最新数据,php,mysql,sql,Php,Mysql,Sql,这是我当前的MySQL表: Crop ID Price DateUpdated Area Okra 4 50 2014-02-05 21:42:26 Bulua Eggplant 5 20 2014-02-05 21:42:26 Lapasan Okra 6 35 2014-02-05 21:42:26 Agora Cau

这是我当前的MySQL表:

Crop             ID  Price  DateUpdated             Area
Okra             4   50     2014-02-05 21:42:26     Bulua
Eggplant         5   20     2014-02-05 21:42:26     Lapasan
Okra             6   35     2014-02-05 21:42:26     Agora
Cauliflower      8   300    2014-02-05 21:42:26     Patag
Onion            9   10     2014-02-05 22:02:34     Cogon
Kalabasa         10  50     2014-02-05 22:59:30     Cogon
Garlic           11  130    2014-02-05 22:59:44     Cogon
Onion            14  34.4   2014-02-05 23:12:21     Cogon
Onion            15  54     2014-02-07 02:40:13     Cogon
我想查询所有
'Crops'
及其
'Price'
区域名称中最新的
'Cogon'
。 这是我使用的最后一个查询:

SELECT ID, Crop, Area, MAX( DateUpdated ) 
AS Latest, DateUpdated, Price 
FROM crops 
WHERE Area = TRIM( 'Cogon' ) 
GROUP BY Area, Crop;
在这本书中,我想用最新的价格把所有的作物都放在“Cogon”里


上面的语法输出“Cogon”中的所有作物。但是,它不会输出洋葱的最新价格(ID 14),而是输出较旧的数据(ID 9)。

您想
按日期订购更新的描述
按ID订购描述
如果您喜欢怎么办

SELECT Crop, 
Area, 
DateUpdated, 
Price 
FROM crops cr
WHERE trim(Area) = 'Cogon' 
and
DateUpdated = (select max(DateUpdated) 
               from crops 
               where Crop = cr.Crop and trim(Area) = 'Cogon' ) ;

这个问题每天都会被问到,并得到正确的回答,但这并不是说每个答案都是正确的。@草莓从逻辑的角度来看,它应该打印出我想要的输出,但失败了。你能解释一下是哪一部分把它弄得一团糟吗?我不介意。这个问题一直都有答案。@草莓:好的,谢谢你给我时间。我已经试过了按日期更新的描述的顺序,但它仍然输出了旧的一个,即洋葱的ID 9。同样,
ORDER BY ID DESC
也会输出同样的结果。试着颠倒顺序,因此,
orderbydateupdated ASC
orderbyid ASC
。我发誓desc order会给你正确的结果,但相反的顺序会给你正确的结果。你给我的代码工作。先生,如果您有时间,您能解释一下
之后的部分吗?
其中Crop=cr.Crop
需要:
其中Crop=cr.Crop和trim(区域)='Cogon'
当然;相关子查询部分
DateUpdated=(选择…)
与外部查询一样获取作物的最新日期。i、 e,如果在外部查询中crop是洋葱,那么它会查找洋葱的最新日期,并相应地给出结果。@ypercube,这很有意义,因为OP是在“Cogon”区域上共同集中的。换了。谢谢你的指点。我删除了不必要的
GROUP BY