MySQL更新语句

更新

(1)将一个表的字段更新到另一个表中

-- 应用场景:B表记录客户的所有负责人;将B表的负责人追加到A表中负责人字段值
UPDATE oa_customer c,oa_charge_person s SET c.charge_person = CONCAT( c.charge_person , s.person_str ) WHERE c.id = s.cid

 (2)将一张表的字段中的某一个字符串替换成另一个字符串

-- 将字段url中的"http"改成"https"
UPDATE test SET url = REPLACE(url,'http','https');

 (3)根据一个表的数据更改另一个与此表没有关联表的数据

-- 表A id与表B uid关联,表B的cid与表C的id关联,根据表A的部门字段更改表C的部门字段
UPDATE A,B,C SET C.department_id = A.new_department WHERE A.id = B.uid AND B.cid = C.id
 
-- 根据分享表查询客户负责人,如果与客户crm_customer 表中的负责人不一致,则更新
UPDATE crm_customer c,
 (
	SELECT
		s.cid,
		c1.charge_person,
		CONCAT(
			c1.creatid,
			',',
			group_concat(s.beshare_uid),
			','
		) AS new_charege
	FROM
		crm_share_join s,
		crm_customer c1,
		crm_customer_data cd
	WHERE
		s.cid = c1.id
	AND cd.cid = c1.id
	AND s.creat_id <> s.beshare_uid
	GROUP BY
		s.cid
	HAVING
		new_charege <> c1.charge_person
) cs
SET c.charge_person = cs.new_charege
WHERE
	c.id = cs.cid

-- 更新移交的客户共享表中的负责人
UPDATE crm_share_customer sc,crm_share_join s,crm_customer c,crm_customer_data cd
SET sc.creatid = c.creatid,
WHERE sc.id = s.id AND  s.cid = c.id AND c.id = cd.cid AND sc.creatid <> c.creatid
AND ocreatid <> 0

å°é»é¸¡çæç¼ç

(不定时更新中.......) 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章