add_receiver_mobile_and_num_to_orders.sql 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. -- 为订单表添加收货人手机号和商品数量字段
  2. -- 执行时间:2025-12-27
  3. -- 添加收货人手机号字段
  4. ALTER TABLE `lev_orders`
  5. ADD COLUMN `receiver_mobile` varchar(20) COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '收货人手机号'
  6. AFTER `receiver_name`;
  7. -- 添加商品数量字段
  8. ALTER TABLE `lev_orders`
  9. ADD COLUMN `num` int(10) NOT NULL DEFAULT '0' COMMENT '商品数量'
  10. AFTER `store_id`;
  11. -- 添加索引以提高查询性能
  12. ALTER TABLE `lev_orders`
  13. ADD INDEX `idx_receiver_mobile` (`receiver_mobile`);
  14. -- 更新现有数据(可选)
  15. -- 如果需要从订单商品表中统计数量,可以执行以下语句:
  16. -- UPDATE lev_orders o
  17. -- SET num = (
  18. -- SELECT COALESCE(SUM(og.num), 0)
  19. -- FROM lev_orders_goods og
  20. -- WHERE og.order_no = o.order_no AND og.mark = 1
  21. -- )
  22. -- WHERE o.mark = 1;
  23. -- 验证更新结果
  24. SELECT
  25. COUNT(*) as total_orders,
  26. COUNT(CASE WHEN receiver_mobile != '' THEN 1 END) as orders_with_mobile,
  27. AVG(num) as avg_goods_count
  28. FROM lev_orders
  29. WHERE mark = 1;