Zac*_*ous 3 mysql wordpress woocommerce
我有一个 WordPress 数据库,其中大约有 28000 个垃圾邮件用户注册,我需要如何在不删除任何实际客户的情况下隔离和删除这些注册。
我注意到所有垃圾邮件用户注册都有一个空的meta_value特定meta_key
有问题的元密钥是billing_first_name
因此,我试图编写一个可以在 PHPmyAdmin 中执行的查询,该查询将返回具有空meta_value的所有用户 ID 的列表,以便我可以从_表和表中删除所有这些用户。meta_key billing_first_nameusermeta_users
我在网上发现一个用户有类似的问题:https://wordpress.org/support/topic/deleting-spam-user-accounts-from-site-with-woocommerce
他编写了以下查询,我尝试在我的数据库上运行该查询:
SELECT * FROM wp_usermeta JOIN wp_users ON (wp_usermeta.user_id = wp_users.ID) WHERE user_id NOT IN (SELECT um1.user_id FROM wp_usermeta um1 WHERE um1.meta_key = 'shipping_first_name')
Run Code Online (Sandbox Code Playgroud)
然而,它只返回 137 个结果,并且注册后,但实际订单只有 1000 左右,我的数据库比数据库中的帐户28000+ plus多得多。137 spam
我尝试过调整查询以扩展它并让它执行我想要的操作,但我并不是真正的“数据库”人员,而且运气不佳。
我的尝试是:
SELECT * FROM wv5_usermeta JOIN wv5_users ON (wv5_usermeta.user_id = wv5_users.ID) WHERE user_id NOT IN (SELECT um1.user_id FROM wv5_usermeta um1 WHERE um1.meta_key = 'billing_first_name' AND um1.meta_value IS NOT NULL)
Run Code Online (Sandbox Code Playgroud)
有人可以帮我制定一个可以使用的工作查询吗?
请注意,我的尝试是基于我在网上找到的查询,我不知道这是否是正确的方法。
我的最终目标是识别所有从未下过任何订单的用户。未下订单的用户没有设置帐单地址或送货地址。因此,我尝试构建一个查询,选择帐单地址或送货地址为空的用户,然后将其删除。
非常感谢您提供的任何帮助。
编辑:
需要澄清的是,该网站的用户是 WooCommerce,因此数据库中没有特定的订单表。元键(例如“billing_first_name”、“shipping_first_name”等)仅在用户第一次下订单后才会填充值。因此,假设垃圾邮件用户从未下过订单,因此这些meta_keys将为空。
只是根据这篇文章的猜测woocommerce 将订单存储在posts表格中post_type = 'shop_order'。
所以你可以尝试这个查询:
SELECT u.* FROM wv5_users u
LEFT JOIN wv5_posts p
ON u.ID = p.post_author
AND p.post_type = 'shop_order'
GROUP BY u.ID
HAVING COUNT(p.id)=0
Run Code Online (Sandbox Code Playgroud)
它应该返回从未发过任何帖子的用户列表post_type = 'shop_order'。也许您应该检查您的 woocommerce 使用的具体内容post_type。
如果您打算删除所有这些用户,请务必小心。其中一些可能是您的管理员。
编辑抱歉,我没有安装 wordpress 和 woocommerce。因为我的查询没有帮助。让我们尝试按照你的方式走,但稍微正确一些:
SELECT u.* FROM wv5_users u
LEFT JOIN wv5_usermeta m
ON u.ID = m.user_id
AND m.meta_key = 'shipping_first_name'
GROUP BY u.ID
HAVING COUNT(m.id)=0
Run Code Online (Sandbox Code Playgroud)
或者根据这个
HAVING COUNT(m.umeta_id)=0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3561 次 |
| 最近记录: |