工作小总结

要批量更新,指定值的

需求:mysql数据库:updatet_devices_param_relationa setparam_id=(SELECTid fromt_devices_class_parm wheredata_id=7000 andbuilding_number=(SELECTidFROMt_business_dictWHERETYPE=4ANDNAME='


需求:

mysql数据库: update t_devices_param_relation a  set param_id = (SELECT id  from t_devices_class_parm  where data_id = 7000  and building_number = (SELECT id FROM t_business_dict WHERE TYPE = 4 AND NAME = '七号楼')) where a.building_number = 13 and a.param_id = 7000; 

 上面sql语句中的data_id = 7000和a.param_id = 7000 是一一对应的。

 现在我想要批量更新a.building_number = 13  怎么修改sql语句?


要批量更新 a.building_number = 13 的记录,你需要确保在子查询中能正确地匹配每个 data_id 和相应的 param_id。下面是一个改进的 SQL 语句,通过 JOIN 方式来批量更新:

UPDATE t_devices_param_relation a

JOIN (

    SELECT 

        b.id AS new_param_id, 

        b.data_id, 

        c.id AS new_building_number

    FROM t_devices_class_parm b

    JOIN t_business_dict c ON b.building_number = c.id

    WHERE c.type = 4 AND c.name = '七号楼'

) sub_que

原创不易,完成人机校验,阅读全文

相关推荐