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?
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.