How to Delete Multiple Rows With Different Ids in a SQL Query?

For the examples in this article, let's suppose we have a table with unique ids that we're going to be using to delete several rows in a single query. You can, of course, use other conditions/columns as well.

#Deleting All Rows as Specified

Using the IN clause, we can specify multiple row ids to delete. For example, the following query would delete rows with ids equal to 1, 5 and 7:

DELETE from `tablename` WHERE `id` IN (1, 5 , 7);

#Deleting All Rows Except Some

Using the NOT IN clause we can delete all rows except some like so:

DELETE FROM `tablename` WHERE `id` NOT IN (1, 5, 7);

This would delete all rows except rows with ids equal to 1, 5 and 7.

#Deleting All Rows in a Range

We can delete a number of rows between a range in the following way:

DELETE FROM `tablename` WHERE `id` >= 3 AND `id` <= 10;

This is equivalent to using the BETWEEN operator like so:

DELETE FROM `table_name` WHERE `id` BETWEEN 3 AND 10;

Both these queries would delete all rows with ids between 3 and 10 (inclusive).


This post was published by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.