Mysql 从另一个表更新一列
我有两张桌子。wp_用户和wp_用户\u备份。这只是一份拷贝。这些表如下所示:Mysql 从另一个表更新一列,mysql,sql,phpmyadmin,Mysql,Sql,Phpmyadmin,我有两张桌子。wp_用户和wp_用户\u备份。这只是一份拷贝。这些表如下所示: wp_users user_login|user_pass user1 |pasword94545 user2 |pasword5920 列user_pass具有不同的值。如何从wp\u users\u backup更新列user\u pass,其中user\u login=equal in等于表wp\u users?尝试以下操作: UPDATE wp_users_backup SET user_p
wp_users
user_login|user_pass
user1 |pasword94545
user2 |pasword5920
列user_pass具有不同的值。如何从wp\u users\u backup更新列user\u pass,其中user\u login=equal in等于表wp\u users?尝试以下操作:
UPDATE wp_users_backup
SET user_pass =
(SELECT user_pass FROM wp_users WHERE user_login = wp_users_backup.user_login);
它应该可以工作。我相信您希望从备份表还原值,
因此,您可以通过更新连接来实现这一点:
UPDATE wp_users a
JOIN wp_users_backup b ON a.user_login = b.user_login
SET a.user_pass = b.user_pass
您有几种方法可以做到这一点: 1:使用表表达式
With ABC
AS
(
select a.user_login, a.user_pass as old, b.user_pass as new
from wp_users inner as a join wp_users_backup as b
on b.user_login = a.user_login
)
Update ABC
SET ABC.old = ABC.new
2.使用相关查询
Update wp_users as a
set user_pass = (select user_pass from wp_users_backup as b where b.user_login = a.user_login )
请使用网站上的搜索功能查找类似问题。如果您有需要帮助的代码,StackOverflow会提供帮助。@Badslayer很高兴我能提供帮助,我更新了第一个,一个语法错误我在定义表表达式后错过了“AS”