Обновление MySQL тоже самое! таблица с подзапросом - PullRequest
1 голос
/ 07 октября 2011

Я хочу обновить несколько строк в той же таблице. Как я знаю, следующая форма не работает под MySQL

 UPDATE footbl SET foocol=something WHERE foocol in (SELECT ft.foocol ... bla bla )

В одном сообщении на форуме MySQL предлагается: использовать подзапрос.

Итак, мое решение:

 SELECT @data:=f2.fname ... bla bla
 UPDATE tfile2 SET fstatus='deleted' WHERE tfile2.fname=(@data);

Но, к сожалению, если подзапрос @data содержит более одной строки, в моем случае обновляется только одна строка. ! Проверьте эту картинку!

Итак, что я не так, как можно обновить более одной строки в одной таблице?

Спасибо за усилия и ваше время заранее.

Чаба

1 Ответ

7 голосов
/ 07 октября 2011

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

UPDATE footbl
   SET foocol=something
 WHERE foocol in (SELECT foocool FROM (SELECT ft.foocol FROM footbl ...) x )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...