Search code examples
mysqlexpressionengine

MySQL query to delete 200,000 spam members located in three tables in ExpressionEngine


I've got a spam member problem with one of my ExpressionEngine sites. I've walked through the member group affected and written down the the member_id number for each member I want SAVE. I'm hoping to delete every other member from within the same group_id. The member data is stored in 3 different tables. Here's an equation I'm looking for, but in MySQL query language:

FROM tables = exp_member_data, exp_member_homepage, exp_members<br>
IF group_id = 5<br>
AND NOT member_id = 5, 6, 10, 107, 267, etc... <br>
DELETE remaining rows

Any help is greatly appreciated!!


*EDIT

Thanks @Romil

Here's the end result that worked, as group_id wasn't in two tables:

DELETE FROM `exp_member_homepage`, `exp_member_data`
WHERE member_id not in ( 5, 10, 11, 15 )

***** be sure to add members from ALL member groups

AND

DELETE FROM `exp_members`
WHERE group_id = 5
AND member_id not in ( 5, 10, 11, 15 )

Solution

  • Delete from mytable where  group_id = 5
    AND member_id not in ( 5, 6, 10, 107, 267)