Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 从另一个表更新一列_Mysql_Sql_Phpmyadmin - Fatal编程技术网

Mysql 从另一个表更新一列

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_用户和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_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”