SELECT mh.id, mh.bp_high, mh.bp_low, mh.br, mh.hr, mh.hrv, mh.temperature, mh.is_work, mh.create_time, mh.user_id, mh.user_name, mh.warning_id, mf.face_name, mf.face_phone , CASE WHEN LENGTH(birth_date) = 15 THEN -- 15位身份证号,提取出生年份、月份、日期并计算年龄 FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(CONCAT('19', SUBSTRING(birth_date, 7, 6)), '%Y%m%d')) / 365.25) WHEN LENGTH(birth_date) = 18 THEN -- 18位身份证号,提取出生年份、月份、日期并计算年龄 FLOOR(DATEDIFF(CURDATE(), STR_TO_DATE(SUBSTRING(birth_date, 7, 8), '%Y%m%d')) / 365.25) ELSE NULL END AS age, mf.dept_id, d.dept_name FROM mine_health mh INNER JOIN mine_face mf on mf.id =mh.face_id inner join sys_dept d on d.dept_id =mf.dept_id insert into mine_health bp_high, bp_low, br, hr, user_id, user_name, face_id, warning_id, hrv, temperature, is_work, create_time, #{bpHigh}, #{bpLow}, #{br}, #{hr}, #{userId}, #{userName}, #{faceId}, #{warningId}, #{hrv}, #{temperature}, #{isWork}, #{createTime}, update mine_health face_id=#{faceId} bp_high = #{bpHigh}, bp_low = #{bpLow}, br = #{br}, hr = #{hr}, hrv = #{hrv}, temperature = #{temperature}, is_work = #{isWork}, create_time = #{createTime}, where id = #{id} delete from mine_health where id = #{id} delete from mine_health where id in #{id}