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