欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

mysql如何根据某一张表的字段更新另一张表的字段?

程序员文章站 2022-03-31 10:29:09
!FIND_IN_SET()取反表示某个字符串不存在另外一个字符串中 -- 基金经理(根据findinfo表中的im_ids更新) UPDATE `user` u INNER...

!FIND_IN_SET()取反表示某个字符串不存在另外一个字符串中

-- 基金经理(根据findinfo表中的im_ids更新)

UPDATE `user` u INNER JOIN fundinfo f ON FIND_IN_SET(u.user_id,f.im_ids) AND

!FIND_IN_SET('1',u.jobs)

SET u.jobs = CASE WHEN (ISNULL(u.jobs) OR u.jobs = '') THEN '1' ELSE CONCAT(u.jobs,',1') END;

-- 项目经理 (根据fundinfo_ext表中的proje_manager更新)

UPDATE `user` u INNER JOIN fundinfo_ext f ON FIND_IN_SET(u.user_id,f.project_manager) AND

!FIND_IN_SET('2',u.jobs)

SET u.jobs = CASE WHEN (ISNULL(u.jobs) OR u.jobs = '') THEN '2' ELSE CONCAT(u.jobs,',2') END;

-- 项目经理 (根据channel 表中的sales_man更新)

UPDATE `user` u INNER JOIN channel c ON c.sales_man = u.user_id AND !FIND_IN_SET('2',u.jobs)

SET u.jobs = CASE WHEN (ISNULL(u.jobs) OR u.jobs = '') THEN '2' ELSE CONCAT(u.jobs,',2') END;

-- 交易员 (根据fundinfo_ext表中的fund_traders更新)

UPDATE `user` u INNER JOIN fundinfo_ext f ON FIND_IN_SET(u.user_id,f.fund_traders) AND

!FIND_IN_SET('3',u.jobs)

SET u.jobs = CASE WHEN (ISNULL(u.jobs) OR u.jobs = '') THEN '3' ELSE CONCAT(u.jobs,',3') END; <