MySQL - обновление с использованием значения из подзапроса в той же таблице

У меня есть таблица "mytable", и она имеет следующую структуру и примеры данных.

+----+------------+--------------------+
| id | name       |   password         |
+----+------------+--------------------+
| 1  | Raj        |   somepwd          |
+----+------------+--------------------+
| 2  | Rao        |   abcdefg          |
+----+------------+--------------------+
| 3  | Uday       |                    |
+----+------------+--------------------+

Я хочу обновить пароль Uday с помощью пароля Rao. Может кто-нибудь помочь мне с запросом обновления MySQL, чтобы решить эту проблему.

Заранее спасибо.

4 ответа

Решение

Вам нужно использовать этот запрос.

update mytable as t1,
(select id,`password` from mytable where name = 'Rao') as t2
set t1.password = t2.password
where t1.id = 3
UPDATE mytable 
set 
  password=(SELECT password FROM mytable WHERE name LIKE 'Rao') 
WHERE name LIKE 'Uday'

Я получил решение, на самом деле выше всех решений, которые дают мне ошибку.

UPDATE mytable as aa, (SELECT password FROM mytable where id =2) as bb SET aa.password=bb.password where aa.id=3;
update mytable set password = (select password from mytable where id=2) where id=3

или вы можете использовать самостоятельное соединение

update mytable t1 join mytable t2 on t1.id = 3 set t1.password = t2.password
where t2.id=2

Примечание. Используйте идентификаторы вместо других столбцов.

Другие вопросы по тегам