首页 > 解决方案 > MySQL查询给出错误你不能指定目标表

问题描述

我有这个查询。

UPDATE messages 
SET seen_by = CONCAT( seen_by, '3,')
WHERE id IN (SELECT id FROM messages WHERE NOT FIND_IN_SET(3, seen_by) AND chat_id = 350)

但是当我尝试执行它时,它给了我这个错误

您不能在 FROM 子句中指定目标表“消息”进行更新

我想更新我在 WHERE 子句中使用的同一个表。我怎样才能做到这一点?

标签: mysqlsubquery

解决方案


您甚至不需要子查询。

只需替换WHERE id IN (SELECT id FROM messages WHERE xyz)WHERE xyz.

这更直接,不必先将所有 ID 加载到 RAM 中(如果它甚至允许你的话)。


推荐阅读