要批量更新,指定值的
需求: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
原创不易,完成人机校验,阅读全文