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
Примечание. Используйте идентификаторы вместо других столбцов.