Mysql выдает ошибку - PullRequest
       22

Mysql выдает ошибку

0 голосов
/ 15 ноября 2010
DELETE FROM mytable WHERE id IN (SELECT id FROM mytable where roll=1)

У меня есть стол mytable.Мой запрос выше выдает ошибку.

Вы не можете указать целевую таблицу 'mytable' для обновления в предложении FROM

Ответы [ 6 ]

3 голосов
/ 15 ноября 2010

Из документации MySQL :

В настоящее время вы не можете удалить из таблицы и выбрать из той же таблицы в подзапросе.

К счастью, вам не нужен подзапрос.Просто сделайте:

DELETE FROM mytable WHERE roll=1

Это намного короче и понятнее для загрузки.

1 голос
/ 15 ноября 2010

Почему бы тебе просто не сделать это?

DELETE FROM mytable WHERE roll=1
0 голосов
/ 15 ноября 2010

В этой теме объясняется, почему вы не можете этого сделать.

И в этом примере вы можете просто использовать:

DELETE FROM mytable WHERE roll=1
0 голосов
/ 15 ноября 2010

Почему вы используете подзапрос?Вы можете написать это так:

DELETE FROM mytable WHERE where roll=1;
0 голосов
/ 15 ноября 2010

Почему бы просто:

DELETE FROM mytable WHERE roll=1
0 голосов
/ 15 ноября 2010

Почему бы вам просто не написать

DELETE FROM mytable WHERE roll=1

?Ошибка возникает из-за того, что MySql не нравится извлекать таблицу из подзапроса, когда вышестоящий запрос изменяет ту же таблицу.

...