MySQL分步构建WordPress订单表:填充email列失败求助
问题解决:填充order_output表的email字段
你的核心问题是误用了INSERT语句——INSERT是向表中新增记录,而你需要的是更新已存在的记录的email字段,这才导致了要么无效果、要么数据翻倍的问题。
正确的更新语句
使用UPDATE关联表来填充已有行的email字段:
UPDATE order_output oo INNER JOIN wp_users u ON u.ID = oo.customer_id SET oo.email = u.user_email;
可选:过滤空customer_id的情况
如果存在匿名订单(customer_id为NULL),可以添加条件避免这些行被更新为NULL:
UPDATE order_output oo INNER JOIN wp_users u ON u.ID = oo.customer_id SET oo.email = u.user_email WHERE oo.customer_id IS NOT NULL;
清理错误插入的重复数据
如果之前错误的INSERT操作导致了大量重复/空行,先删除这些无效记录:
DELETE FROM order_output WHERE order_id IS NULL;
内容的提问来源于stack exchange,提问作者Josh Martin
相关产品推荐
相关产品推荐

