我收到这个错误:
You can't specify target table 'wp_mail_queue' for update in FROM clause
因为这个查询:
DELETE FROM wp_mail_queue
WHERE message_id = (SELECT message_id FROM wp_mail_queue ORDER BY id LIMIT 0, 1)
ORDER BY wp_mail_queue.id
LIMIT 100
我想它是子查询的结果。将 DELETE 替换为 SELECT *,它会准确返回我要删除的条目。我需要的是一种重写它的方法,这样我就不需要在那个子查询中查询 wp_mail_queue,或者完全避免子查询。
我首先想到的是变量,如果我能以某种方式将子查询分配给一个变量然后使用它呢?
最佳答案
尝试:
DELETE FROM wp_mail_queue
WHERE message_id = (SELECT * FROM (SELECT message_id FROM wp_mail_queue ORDER BY id LIMIT 0, 1) queue_table)
ORDER BY wp_mail_queue.id
LIMIT 100
关于mysql - 您不能在 FROM 子句中指定要更新的目标表 'wp_mail_queue',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7378486/