Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL查询给出错误无法指定目标表_Mysql_Subquery - Fatal编程技术网

MySQL查询给出错误无法指定目标表

MySQL查询给出错误无法指定目标表,mysql,subquery,Mysql,Subquery,我有这个疑问 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子句中使用的同一个表。我该怎么做呢?您甚至不需要子查询 只需将消息WHERE xyz中的

我有这个疑问

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子句中使用的同一个表。我该怎么做呢?

您甚至不需要子查询

只需将消息WHERE xyz中的SELECT id中的WHERE id替换为WHERE xyz即可


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

这很有帮助。非常感谢。我认为这只能通过子查询实现。