Delete first X lines of a database

coroner picture coroner · Oct 8, 2012 · Viewed 39.4k times · Source

is there an SQL command to delete the first X lines of a database table?

I have a database table containing some information but no id or auto-incrementing value and a program that processes the first X lines of this table. Afterwards these X lines need to be deleted. So the standard query is:

DELETE FROM table WHERE something = value;

So, is there a way to build a query like:

DELETE FROM table WHERE rownumber <= X;

I have tried this command, but nothing happens to the database.. Do you have any clue?

Answer

Polynomial picture Polynomial · Oct 8, 2012

Use LIMIT on your delete:

DELETE FROM table WHERE condition LIMIT 10

Or, if you don't want the condition

DELETE FROM table LIMIT 10

Remember that the order in which rows will be deleted is undefined - it depends on your DBMS configuration and table indices. You should include an ORDER BY so that the deletion is done in a defined order, e.g. ORDER BY id ASC to delete the lowest IDs first.

See the MySQL documentation for DELETE for more details.