您的位置:首页 > 数据库 > MySQL

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

2018-01-31 16:41 477 查看
!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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: