需要帮助MySql查询

时间:2011-03-24 17:23:44

标签: mysql

我想删除wp_usermetauser_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")

4 个答案:

答案 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字段中查看它。

检查第一个查询并告诉我。