Ramos Ramos
Ramos Ramos

Reputation: 1

Execute sql delete query foreach user_id

Is it possible execute sql delete query foreach user_id in table? I can get all user_id with SELECT user_id FROMusers Then I can delete all raws except last with

DELETE FROM accounts
WHERE id IN (select * from (SELECT id 
FROM   accounts 
WHERE  user_id = 150192618395339835 
       AND site = 'https://www.paypal.com' 
       AND time_added < (SELECT Max(time_added) 
                         FROM   accounts 
                         WHERE  user_id = 150192618395339835 
                                AND site = 'https://www.paypal.com') 
ORDER  BY time_added ASC) as t)

How can I pass all user_id to delete query?

Upvotes: 0

Views: 293

Answers (1)

Piotr Rogowski
Piotr Rogowski

Reputation: 3890

Try with

WHERE user_id in (SELECT u.user_id FROM users u) 

And all query:

DELETE FROM accounts
WHERE id IN (select * from (SELECT id 
FROM   accounts 
WHERE  user_id in (SELECT u.user_id FROM users u) 
       AND site = 'https://www.paypal.com' 
       AND time_added < (SELECT Max(time_added) 
                         FROM   accounts 
                         WHERE  user_id = 150192618395339835 
                                AND site = 'https://www.paypal.com') 
ORDER  BY time_added ASC) as t)

Upvotes: 1

Related Questions