MYSQL 抽取字段里某个属性值赋值给新的字段SQL脚本

在现实生活中,往往会有一些你意向不到的需求,假设一张订单详情表,里面有ID,商品信息(包含购买的一件商品的所有信息,包括商品ID,价格...等),购买数量,单价等字段,如果有一个功能需要你把商品信息里的商品ID抽取出来,放到订单详情表里新建的一个商品ID字段,这时候,你该如何处理?
解决方案SQL脚本如下:

UPDATE t_ord_detail dtl
INNER JOIN (
	SELECT
		dtl_first.id,
		CASE
	WHEN LENGTH(dtl_first.prod_id) > 10 THEN
		SUBSTR(
			dtl_first.prod_id,
			1,
			LOCATE(',', dtl_first.prod_id) - 1
		)
	ELSE
		dtl_first.prod_id
	END prod_id
	FROM
		(
			SELECT
				id,
				SUBSTR(
					dtl.prod_info,
					LOCATE('"prodId":', dtl.prod_info) + 9,
					LOCATE(',"prodNo"', dtl.prod_info) - (
						LOCATE('"prodId":', dtl.prod_info) + 9
					)
				) prod_id
			FROM
				t_ord_detail dtl
		) dtl_first
) dtl_new ON dtl_new.id = dtl.id
SET dtl.prod_id = dtl_new.prod_id;

 

转载于:https://my.oschina.net/u/3155476/blog/3056628

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值