MySQL 查询给出错误您不能指定目标 table

MySQL query giving error You can't specify target table

我有这个问题。

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)

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

You can't specify target table 'messages' for update in FROM clause

我想更新我在 WHERE 子句中使用的相同 table 内容。我该怎么做?

您甚至不需要子查询。

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

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