MySQL根据查询的数据更新记录

这个SQL脚本用于更新system_region表中行政区域的父级代码,通过LEFT JOIN操作连接相同级别的区域表,根据层级设置parent_code为cityCode或provinceCode。更新条件是当前记录的code不等于直接上级的code。

更新行政区域的父级行政区代码

UPDATE system_region,(
	SELECT
		system_region.id,
		system_region.`code`,
		system_region.full_name,
		temp1.full_name province,
		temp2.full_name city,
		temp1.`code` provinceCode,
		temp2.`code` cityCode
	FROM
		system_region
		LEFT JOIN system_region temp1 ON temp1.`code` = CONCAT(LEFT(system_region.`code`,2),'0000') AND system_region.`code` != CONCAT(LEFT(system_region.`code`,2),'0000')
		LEFT JOIN system_region temp2 ON temp2.`code` = CONCAT(LEFT(system_region.`code`,4),'00') AND system_region.`code` != CONCAT(LEFT(system_region.`code`,4),'00')
) t
SET
	parent_code = IF(t.cityCode, t.cityCode, t.provinceCode)
WHERE
	system_region.id = t.id
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值