@titronfan

Как одним SQL запросом обновить данные одного поля в таблице на другое?

Здравствуйте! Вероятно, что вопрос не совсем точно задан.
В общем БД MySQL и одна таблица: accounts.

Структура таблицы (поля):
name             |   mail                 |   manager
Ivan Ivanov      |   ivanov@example.com   |   Petr Petrov
Sidor Sidorov    |   sidorov@example.com  |   Sergey Sergeev
Petr Petrov      |   petrov@example.com   |   Sidor Sidorov
...


Как сделать так, чтобы записи поля manager обновилось на значение mail в связке (поле manager с полем name).
Должно быть на выходе:
name             |   mail                 |   manager
Ivan Ivanov      |   ivanov@example.com   |   petrov@example.com
Sidor Sidorov    |   sidorov@example.com  |   [other value]
Petr Petrov      |   petrov@example.com   |   sidorov@example.com
...


Всем спасибо за советы!
  • Вопрос задан
  • 532 просмотра
Решения вопроса 1
@titronfan Автор вопроса
Решение такое:
UPDATE accounts AS U1, accounts AS U2 SET U1.manager = U2.mail WHERE U2.name = U1.manager
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@dmitryKovalskiy
программист средней руки
На MS SQL можно примерно такой скриптик выполнить. на MySql не уверен.
UPDATE accounts 
SET manager = manager.mail
FROM accounts as A
INNER JOIN accounts as manager ON a.manager = manager.name
Ответ написан
update
set [manager] = [mail]
с учетом синтаксиса update
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы