У меня есть строки более 60000 в моей таблице. Как удалить строки с 40000 до 50000 одновременно?
Как удалить сразу несколько записей в MySQL?
Ответ 1
Вы можете использовать функцию between
:
delete from exampleTable where id between 40000 and 50000
или
delete from exampleTable where id >= 40000 and id <= 50000
довольно просто?
Ответ 2
Я предполагаю, что вы хотите сделать это на основе стандартного порядка таблицы, и у вас нет естественного ключа или какого-либо другого способа упорядочить их в данных таблицы.
т.е. SELECT * FROM WORDS
возвращает:
Hi
Hello
Bye
Goodbye
What up
Итак, если вы сказали, что хотите удалить строки с 2 по 4, вы хотите удалить Hello, Bye и Goodbye. Правильно?
Является ли порядок возврата вашей таблицы детерминированным? Другими словами, вы получаете результаты в том же порядке каждый раз? В идеале вы сможете идентифицировать столбец в своей таблице, который содержит данные, которые вы могли бы отключить, что позволит вам использовать ответ Tricker.
Если это неверно, вам нужно будет использовать номер строки для вашего оператора. Я не пользователь mysql, код ниже, несомненно, был бы чище, если бы я был. Кроме того, у меня даже нет базы данных mysql для проверки запроса. Я собрал выражение sql, используя этот пост, в качестве ссылки для того, как получить строку num в 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);
Ответ 3
Таблица: бакалейная лавка
id item
1 рис 2 мыла 3 риса 4 рис
УДАЛИТЬ ИЗ 'бакалею' WHERE item = "рис" LIMIT 2;
Это спокойнее, чем все идеи. для этого конкретного элемента можно удалить 2 записи.
И ответ:
Удалены 2 строки.
ВЫБРАТЬ * ИЗ бакалеи
id item
1 рис 2 мыла
Ответ 4
Если у вас нет первичного ключа и вы хотите удалить по столбцу строки i.e, это можно сделать с помощью импорта экспорта mysql. Сделайте пользовательский экспорт - укажите начальную строку и количество. В вашем случае вам понадобится два экспорта: один для строк 0 - 40k, второй для 50 последних. Затем импортируйте эти два файла в таблицу. Примечание. Если импорт больших файлов является проблемой, я рекомендую BigDump. http://www.ozerov.de/bigdump/