我想删除wp_usermeta
中user_id
meta_value
为“tonetone”(垃圾帐户)的所有记录。
如您所知,user_id
中有一个wp_usermeta
的记录很多。我试过这样但是不起作用。感谢任何能给我指路的人。
我想要做的就是删除所有记录 使用那个user_id但是公共值 我能得到的只是“tonetone”
DELETE FROM wp_usermeta WHERE user_id = (SELECT user_id FROM wp_usermeta WHERE meta_value = "tonetone")
答案 0 :(得分:1)
delete from wp_usermeta where umeta_id in (select * from (select umeta_id from wp_usermeta where meta_value = "tonetone") as t)
答案 1 :(得分:1)
如果要删除该用户的任何记录已经作为meta_value使用的用户,您可以执行以下操作:
CREATE TABLE wp_usermeta_users_to_delete
(user_id BIGINT(20)NOT NULL PRIMARY KEY);
INSERT INTO wp_usermeta_users_to_delete
SELECT DISTINCT user_id FROM wp_usermeta
meta_value =“tonetone”;
DELETE A. * FROM wp_usermeta INNER JOIN wp_usermeta_users_to_delete B USING(user_id);
DROP TABLE wp_usermeta_users_to_delete;
答案 2 :(得分:0)
以下查询将删除表wp_usermeta
的所有记录,这些记录的字段meta_value
设置为 tonetone
delete wp_usermeta
from wp_usermeta where meta_value = 'tonetone'
<强>更新强>
在看到您更新的问题之后,我很清楚您要做什么。以下查询将删除meta_value设置为“tonetone”的每个用户的所有记录。
DELETE wp_usermeta
FROM wp_usermeta T1
INNER JOIN (SELECT DISTINCT user_id FROM wp_usermeta WHERE meta_value = 'tonetone') T2 ON T1.user_id = T2.user_id
答案 3 :(得分:0)
您的错误:
#1093 - You can't specify target table 'wp_usermeta' for update in FROM clause
如此处所述:MySQL Error 1093 - Can't specify target table for update in FROM clause您不能“修改您在SELECT部分中使用的同一个表”。以下应该有效:
DELETE FROM wp_usermeta WHERE meta_value = 'tonetone'
或者稍微纠正一下您的查询:
DELETE FROM wp_usermeta WHERE user_id IN (SELECT user_id FROM wp_usermeta WHERE meta_value = "tonetone")
但它毫无意义。您基本上检查了user_id
中的比较,而您真正想要在meta_value
字段中查看它。
检查第一个查询并告诉我。