peixue-dev/peidu/Archive/一次性文件/[一次性]修复订单地址数据-2026-01-26.sql

48 lines
1.4 KiB
MySQL
Raw Normal View History

-- ========================================
-- 修复订单表中的无效地址数据
-- 问题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`;