Я нашел ответ и попробую написать его пошагово:
- Почему возникает эта ошибка?
В MySQL, вы не можете изменить ту же таблицу, которую используете в части SELECT. Это поведение задокументировано в http://dev.mysql.com/doc/refman/5.6/en/update.html
Как это сделать?
Есть два способа:
- Присоединить таблицу к самой себе
UPDATE tbl AS a
INNER JOIN tbl AS b ON ....
SET a.col = b.col
Вложите подзапрос глубже в предложение from
UPDATE tbl SET col = (
SELECT ... FROM (SELECT.... FROM) AS x);
Лично в моем случае код выглядел так:
DELETE FROM crm_wsal_metadata
WHERE occurrence_id = ANY (
SELECT occurrence_id FROM (
SELECT occurrence_id FROM crm_wsal_metadata WHERE name = "PostDate" AND value BETWEEN str_to_date('2018-12-26', '%Y-%m-%d') AND str_to_date('2020-05-31', '%Y-%m-%d') AS search) )
Простите за такой плохой стиль. Я новичок в этом :)