MYSQL 根据查询结果批量修改数据


# update select 语句(注意:必须使用inner join)
# 语法 update a inner join (select yy from b) c on a.id =c.id set a.xx = c.yy
#SELECT knowledge_id,COUNT(0) nums FROM pro_base_timu_knowledge GROUP BY knowledge_id;
UPDATE pro_base_knowledge
INNER JOIN ( SELECT knowledge_id, COUNT( 0 ) nums FROM pro_base_timu_knowledge GROUP BY knowledge_id ) b ON pro_base_knowledge.id = b.knowledge_id 
SET pro_base_knowledge.timu_num = b.nums 
 
UPDATE hn_account
INNER JOIN ( SELECT id, contact FROM hn_user_common) AS b ON hn_account.user_id = b.id
SET hn_account.user_name = b.contact WHERE  ISNULL(hn_account.user_name)
 
 
UPDATE account
INNER JOIN ( SELECT id, contact FROM common) AS b ON account.user_id = b.id
SET account.user_name = b.contact WHERE  ISNULL(account.user_name)
posted @ 2022-04-08 15:46  你我一路随行  阅读(1821)  评论(0编辑  收藏  举报