我正在尝试构建一个 MySQL 查询,该查询将更新表中 id 最高且名为 idSession 的字段等于 65 的行。它看起来像这样:
UPDATE `History`
SET `state` = 0
WHERE `id` = (SELECT MAX(id) FROM `History` WHERE `idSession` = 65);
我收到错误消息:
“错误代码:1093。您无法指定更新的目标表“历史记录”
在 FROM 子句中”。
有人知道我的语法有什么问题吗?
正如它所说:当您根据完全相同的表中的条件更新同一个表时,您无法从表中进行选择。 (这是故意写得令人困惑:p)
尝试这个:
UPDATE `History` SET `state`=0 WHERE `idSession`=65 ORDER BY `id` DESC LIMIT 1
您可以使用ORDER
and LIMIT
in UPDATE
and DELETE
查询;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)