前言:
有这样一个需求,就是需要刷新表中原来的数据,把描述转存成编码,就用到了update select 语句(注意:必须使用inner join)
实践过程:
下面有这样一条查询语句
select * from t_order o inner join t_dict_data t on t.dict_type='order_fault_reason_0105' and t.dict_label=o.fault_reason
t_dict_data 是一张码表,dict_value存的是码值,dict_label中存的是码值的描述,t_order表中fault_reason之前存的是码值的描述,需要把fault_reason字段全部改成码值,使用上面查询语句可以定位到需要更新的数据
使用下面update更新数据,把fault_reason换成dict_value中的码值
update t_order o inner join t_dict_data t on t.dict_type='order_fault_reason_0105' and t.dict_label =o.fault_reason set o.fault_reason=t.dict_value;