select id, devc_key, lat, lng, dt, step_index, tp, room_index, update_time, create_time, create_by, update_by from bd_devc_trail_uwb insert into bd_devc_trail_uwb devc_key, lat, lng, dt, step_index, tp, room_index, update_time, create_time, create_by, update_by, #{devcKey}, #{lat}, #{lng}, #{dt}, #{stepIndex}, #{tp}, #{roomIndex}, #{updateTime}, #{createTime}, #{createBy}, #{updateBy}, update bd_devc_trail_uwb devc_key = #{devcKey}, lat = #{lat}, lng = #{lng}, dt = #{dt}, step_index = #{stepIndex}, tp = #{tp}, room_index = #{roomIndex}, update_time = #{updateTime}, create_time = #{createTime}, create_by = #{createBy}, update_by = #{updateBy}, where id = #{id} delete from bd_devc_trail_uwb where id = #{id} delete from bd_devc_trail_uwb where id in #{id} SET SESSION group_concat_max_len = 1024000; INSERT INTO bd_devc_trail (devc_key, dt, poly, update_time, create_time) SELECT devc_key, dt, poly, NOW(), NOW() FROM (SELECT devc_key, dt, concat( '[', GROUP_CONCAT( CONCAT( '[', lng, ',', lat, ',', COALESCE(altitude, '-1'), ',', step_index, ',', COALESCE(room_index, '-1'), ']' ) ORDER BY step_index SEPARATOR ',' ), ']' ) AS poly FROM bd_devc_trail_uwb WHERE dt = #{dt} GROUP BY devc_key, dt) res ON DUPLICATE KEY UPDATE poly = VALUES (poly), update_time = VALUES (update_time);