如何从WordPress的wp_xk_usermeta表中获取美国用户邮箱?
解决WordPress用户元数据中获取美国用户邮箱的问题
你的SQL语句写法有误,因为wp_xk_usermeta表是键值对存储:meta_key字段存的是元数据类型(比如billing_country、billing_email),meta_value存的是对应的值,同一个用户的不同元数据用user_id关联。你之前的写法把meta_key当成了表别名,这是逻辑错误。
下面提供两种可行的SQL方案:
方案1:自连接查询
通过将wp_xk_usermeta表自身连接两次,分别匹配用户的国家信息和邮箱信息:
SELECT um_email.meta_value AS billing_email FROM wp_xk_usermeta um_country INNER JOIN wp_xk_usermeta um_email ON um_country.user_id = um_email.user_id WHERE um_country.meta_key = 'billing_country' AND um_country.meta_value = 'US' AND um_email.meta_key = 'billing_email';
方案2:子查询筛选
先获取所有美国用户的user_id,再根据这些ID查询对应的邮箱:
SELECT meta_value AS billing_email FROM wp_xk_usermeta WHERE meta_key = 'billing_email' AND user_id IN ( SELECT user_id FROM wp_xk_usermeta WHERE meta_key = 'billing_country' AND meta_value = 'US' );
注意事项
- 确保表前缀
wp_xk_和你的数据库实际前缀一致 meta_key的拼写要完全匹配(WordPress默认是小写下划线格式,不要写错)
内容的提问来源于stack exchange,提问作者Nigel Yoshida
相关产品推荐
相关产品推荐

