mysql - where 子句中的选择查询输出不起作用

标签 mysql

更新表集 Style='new' where id=(SELECT MAX(id) From table); 这是我的查询。但在 mysql 中不起作用。 错误显示:您无法在 FROM 子句中指定要更新的目标表“表” 请帮忙。

最佳答案

您可以将子查询的结果存储在 session 变量中,如下所示:

SELECT MAX(id) INTO @maxID 
FROM table
;

UPDATE table 
SET Style='new' 
WHERE id=@maxID
; 

请注意,该操作不再是“原子的”;根据正在进行的事件,MAX(id) 可能会在 SELECT 和 UPDATE 之间发生变化。

另一种可能性是:

UPDATE table
SET Style = 'new'
ORDER BY id DESC
LIMIT 1
;

但我倾向于(没有特殊原因)反对此类查询。

关于mysql - where 子句中的选择查询输出不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31793492/

相关文章:

php - 如何获取当前插入的 AUTO_INCREMENT id?

MySQL使用垂直数据选择多个字段

mysql - Heroku Rails ClearDB Resque 连接

mysql - 原子地更改 mySQL 中的多行

javascript - KNEX 和 MYSQL - 错误 : ER_CANNOT_ADD_FOREIGN: Cannot add foreign key constraint

php - 处理 PHP/MySQL 中的未读帖子

MySQL 选择不同的日期查询

php - 如何在不按大写锁定的情况下将字符设置为大尺寸

PowerPC 64 上的 MySQL

在 Microsoft SQL 2008 上运行的 MySql 仿真