PHP 版本 7.0 mysql版本5.5
我正在尝试对现有记录执行更新。我搜索 max(DateTime) 以获取最后一条记录。 DateTime 是关键字段,类型为 DateTime。当我找到该记录 (email_sent) 时,我希望更新一个字段。
我的代码:
UPDATE $mysqldb SET email_sent='1', WHERE (DateTime=SELECT max(DateTime) FROM $mysqldb)
$mysqldb 已预先定义。代码无法在控制台中运行,在“WHERE...”附近出现 1064 错误。我尝试过在 WHERE 部分使用括号对几种不同的方式进行分组...没有乐趣。我确信这很简单(我希望!)。我已经搜索了几个小时,现在试图找到一个示例并阅读文档。任何帮助表示赞赏!
最佳答案
我认为问题在于 WHERE 子句之前的逗号。另外,虽然我没有使用 MySQL 的经验,但在 Oracle 中,我相信您需要将“SELECT MAX(...)”部分放在括号之间。最后,使用表别名也没什么坏处,这样可以更容易地区分每个上下文。试试这个:
UPDATE $mysqldb t1 SET t1.email_sent='1' WHERE (t1.DateTime=(SELECT max(t2.DateTime) FROM $mysqldb t2))
关于mysql - 是否可以在 UPDATE 的 WHERE 部分使用 Max(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59956237/