-- ======================================== -- 修复订单表中的无效地址数据 -- 问题:service_address字段存储了数字(如:453535) -- 解决:将无效地址更新为NULL,让前端使用逆地理编码 -- ======================================== -- 1. 查看当前有多少订单的地址是纯数字 SELECT COUNT(*) as total_invalid_address, GROUP_CONCAT(DISTINCT service_address) as invalid_addresses FROM `order` WHERE service_address REGEXP '^[0-9]+$'; -- 2. 查看这些订单的详细信息 SELECT id, order_no, student_name, service_address, service_date, status FROM `order` WHERE service_address REGEXP '^[0-9]+$' ORDER BY id DESC LIMIT 20; -- 3. 将纯数字的地址更新为NULL -- 注意:执行前请先备份数据! UPDATE `order` SET service_address = NULL WHERE service_address REGEXP '^[0-9]+$'; -- 4. 验证修复结果 SELECT COUNT(*) as total_null_address FROM `order` WHERE service_address IS NULL OR service_address = ''; -- ======================================== -- 说明: -- 1. 地址为NULL时,前端会自动使用逆地理编码获取真实地址 -- 2. 如果需要保留原始数据,可以先创建备份表 -- 3. 建议在订单创建时就使用逆地理编码获取正确地址 -- ======================================== -- 可选:创建备份表 -- CREATE TABLE `order_backup_20260126` AS SELECT * FROM `order`;