DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)
У меня есть стол mytable.Мой запрос выше выдает ошибку.
mytable
Вы не можете указать целевую таблицу 'mytable' для обновления в предложении FROM
Из документации MySQL :
В настоящее время вы не можете удалить из таблицы и выбрать из той же таблицы в подзапросе.
К счастью, вам не нужен подзапрос.Просто сделайте:
DELETE FROM mytable WHERE roll=1
Это намного короче и понятнее для загрузки.
Почему бы тебе просто не сделать это?
В этой теме объясняется, почему вы не можете этого сделать.
И в этом примере вы можете просто использовать:
Почему вы используете подзапрос?Вы можете написать это так:
DELETE FROM mytable WHERE where roll=1;
Почему бы просто:
Почему бы вам просто не написать
?Ошибка возникает из-за того, что MySql не нравится извлекать таблицу из подзапроса, когда вышестоящий запрос изменяет ту же таблицу.