PHP 中的 Mysql - 如何仅更新表中的一行但 ID 号最大

新手上路,请多包涵

我正在尝试更新我的数据库中的字段,但遇到了这样一个简单的问题:我只想更新表中具有最大 ID 号的一行。我会做这样的事情:

 UPDATE table SET name='test_name' WHERE id = max(id)

不幸的是,它不起作用。有任何想法吗?

表结构

id | name
---|------
 1 | ghost
 2 | fox
 3 | ghost

我只想更新最后一行,因为 ID 号是最大的。

原文由 Kalreg 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 429
2 个回答

首先选择最大 ID,然后更新。

UPDATE table SET name='test_name' WHERE id = (SELECT max(id) FROM table)

原文由 Muhammad Abrar 发布,翻译遵循 CC BY-SA 3.0 许可协议

在此位置无法使用 MAX() 。但是你可以这样做:

 UPDATE table SET name='test_name' ORDER BY id DESC LIMIT 1;

对于多个表,如 @Euthyphro 问题,使用 table.column

该错误表明列 id 不明确。

例子 :

 UPDATE table1 as t1
LEFT JOIN table2 as t2
       ON t2.id = t1.colref_t2
SET t1.name = nameref_t2
ORDER BY t1.id DESC
LIMIT 1

原文由 iblue 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏