INSERT INTO city_building_house( building_house_id, city_building_id, city_building_name, house_number, district_name, district_id, house_status, data_type, owner_name, owner_card, owner_phone, longitude, latitude, creator, gmt_create, modifier, gmt_modified, is_delete ) VALUES( #{buildingHouseId}, #{cityBuildingId}, #{cityBuildingName}, #{houseNumber}, #{districtName}, #{districtId}, #{houseStatus}, #{dataType}, #{ownerName}, #{ownerCard}, #{ownerPhone}, #{longitude}, #{latitude}, #{creator}, #{gmtCreate}, #{modifier}, #{gmtModified}, #{isDelete} ) UPDATE city_building_house SET gmt_modified = #{gmtModified}, modifier = #{modifier}, is_delete = 1 WHERE 1 = 1 AND city_building_id = #{cityBuildingId} AND house_number = #{houseNumber} AND building_house_id IN #{buildingHouseIds[${index}]} DELETE FROM city_building_house WHERE building_house_id IN #{buildingHouseIds[${index}]} UPDATE city_building_house SET city_building_name = #{cityBuildingName}, house_number = #{houseNumber}, district_name = #{districtName}, district_id = #{districtId}, house_status = #{houseStatus}, data_type = #{dataType}, owner_name = #{ownerName}, owner_card = #{ownerCard}, owner_phone = #{ownerPhone}, longitude = #{longitude}, latitude = #{latitude}, house_number = replace(house_number, #{oldHouseNumber}, #{newHouseNumber}), gmt_modified = #{gmtModified}, modifier = #{modifier}, building_house_id = building_house_id WHERE 1 = 1 AND building_house_id = #{buildingHouseId} AND city_building_id = #{cityBuildingId} DELETE FROM city_building_house WHERE id IN ( SELECT id FROM ( SELECT max(id) AS id, count(house_number) AS ucount FROM city_building_house WHERE city_building_id = #{cityBuildingId} GROUP BY house_number HAVING ucount > 1 ORDER BY ucount DESC ) AS tab ) UPDATE city_building_house SET gmt_modified = #{gmtModified}, modifier = #{modifier}, is_delete = 1 WHERE 1 = 1 AND city_building_id IN #{cityBuildingIds[${index}]}