Mysql把一列值赋值给另外一列,update set操作

在数据建模时,经常需要基于原始数据列,创建指标列,需要对列数据进行批量赋值。

赋值操作并不会改变表结构,所以不使用ALTER TABLE,而是使用UPDATE来实现。

UPDATE user_model
SET car_gear = 
(case WHEN preSpec LIKE "%手动%" THEN "手动" 
WHEN preSpec like "%自动%" THEN "自动" 
ELSE NULL 
END)

这段代码实现了从原始列preSpec中抽取出汽车档位是自动,还是手动的指标列。

再比如,根据特定的条件,从preSpec字段中抽取车型指标,赋值给car_model字段。

UPDATE user_model
SET car_model=
(CASE WHEN POSITION("型" IN preSpec)>0 THEN substr(preSpec,POSITION("型" IN preSpec)-2,2) 
WHEN POSITION("版" IN preSpec)>0 THEN substr(preSpec,POSITION("版" IN preSpec)-2,2) 
ELSE NULL
END)

扫描下方二维码,添加微信公众号“数据分析师手记”
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/fwj_ntu/article/details/82786134