-- 检验项结果空值回填 | 目标库 mom-hm | 2026-10-15 -- -- 背景:mes_qc_indicator_result_detail 有 2720/3609 行 value 为空(约 75%)。 -- 原因是此前的导入过程「非数值不落库」,把原始记录值塞进了 remark: -- 录入项: "...;原记录值:;原值不含可转换的实测数值,待补测" -- 分组项: "...;原记录值:;分组标题不录入实测结果" -- -- 回填规则(与用户确认): -- 1. 只回填「录入项」(mes_qc_indicator.item_type = 1):value := 备注中的 ,原样存字符串 -- (X 可能是 合格/符合要求/正常/未检出/待复核,或带单位 0.56%、0.04 g/kg、503.0 粒) -- 2. 分组项(item_type = 2)不填:备注已注明「分组标题不录入实测结果」 -- 3. 备注为 NULL / 无「原记录值」的 38 行不填(无原始值来源) -- -- 备份(回填前): -- SELECT id,result_id,indicator_id,value,remark FROM mes_qc_indicator_result_detail -- WHERE deleted=0 AND (value IS NULL OR value='') ORDER BY id; -> detail-empty-before.tsv(2720 行) -- -- 结果:空值 2720 -> 739(回填 1981 行);剩余 739 = 录入项 27 + 分组项 712。 UPDATE mes_qc_indicator_result_detail d JOIN mes_qc_indicator i ON i.id = d.indicator_id SET d.value = SUBSTRING_INDEX(SUBSTRING_INDEX(d.remark, '原记录值:', -1), ';', 1) WHERE d.deleted = 0 AND (d.value IS NULL OR d.value = '') AND i.item_type = 1 AND d.remark LIKE '%原记录值:%';