Я предполагаю, что вы хотите сделать это в соответствии с порядком таблицы по умолчанию, а у вас нет естественного ключа или другого способа упорядочить их в данных таблицы.
т.е. SELECT * FROM WORDS
возвращает:
Hi
Hello
Bye
Goodbye
What's up
Итак, если вы сказали, что хотите удалить строки со 2 по 4, хотите ли вы удалить Hello, Bye и Goodbye. Правильно?
Является ли порядок возврата вашей таблицы детерминированным? Другими словами, вы получаете результаты в том же порядке каждый раз? В идеале вы должны были бы идентифицировать столбец в вашей таблице, содержащий данные, которые вы могли бы указать, что позволило бы вам использовать ответ Трикера.
Если это не так, вам нужно использовать номер строки для вашего оператора между. Я не пользователь MySQL, приведенный ниже код, несомненно, будет чище, если бы я был. Кроме того, у меня даже нет базы данных mysql для проверки запроса. Я собрал SQL-оператор, используя этот пост в качестве справки о том, как получить номер строки в MySQL Как с помощью MySQL создать столбец, содержащий индекс записи в таблице?
Мой запрос предполагает, что у вас есть какой-то первичный ключ в вашей таблице. Если нет, то нет способа гарантировать, что вы не удалите посторонние строки, плюс это хороший дизайн таблицы.
DELETE FROM YOUR_TABLE
WHERE primarykey =
(SELECT primarykey FROM
(SELECT t.primarykey,
@curRow := @curRow + 1 AS row_number
FROM YOUR_TABLE t
JOIN (SELECT @curRow := 0) r)
WHERE row_number between 40000 and 50000);