Подтвердить что ты не робот

Удалите много строк из таблицы, используя id в Mysql

Я администратор Linux с базовыми знаниями в запросах Mysql

Я хочу удалить много записей в таблице, которые являются ip-адресом из моей таблицы, используя id,

В настоящее время я использую

DELETE from tablename where id=1;
DELETE from tablename where id=2;

но мне нужно удалить 254 записи, поэтому этот метод займет несколько часов, как я могу сказать mysql для удаления строк, которые я указываю, потому что я хочу пропустить удаление некоторых из этих 254.

Удаление всей таблицы и импорт необходимых записей не является вариантом.

4b9b3361

Ответ 1

Лучше всего использовать инструкцию IN:

DELETE from tablename WHERE id IN (1,2,3,...,254);

Вы также можете использовать BETWEEN, если у вас есть последовательные идентификаторы:

DELETE from tablename WHERE id BETWEEN 1 AND 254;

Конечно, вы можете ограничить некоторые идентификаторы, используя другое предложение WHERE:

DELETE from tablename WHERE id BETWEEN 1 AND 254 AND id<>10;

Ответ 2

как насчет использования IN

DELETE FROM tableName
WHERE ID IN (1,2) -- add as many ID as you want.

Ответ 3

Что-то вроде этого может сделать это немного проще, вы, очевидно, можете использовать script для создания этого или даже excel

DELETE FROM tablename WHERE id IN (
1,
2,
3,
4,
5,
6
);

Ответ 4

если вам нужно сохранить только несколько строк, рассмотрите

DELETE FROM tablename WHERE id NOT IN (5,124,221);

Это сохранит только некоторые записи и отбросит других.

Ответ 5

Используйте IN Раздел

   DELETE from tablename where id IN (1,2);

ИЛИ вы можете объединить использование BETWEEN и NOT IN, чтобы уменьшить число, которое вы должны упомянуть.

DELETE from tablename 
where (id BETWEEN 1 AND 255) 
AND (id NOT IN (254));

Ответ 6

Другие предложили IN, это прекрасно. Вы также можете использовать диапазон:

DELETE from tablename where id<254 and id>3;

Если идентификаторы для удаления смежны.

Ответ 7

Если у вас есть какое-то "условие" в ваших данных для определения 254 идентификаторов, вы можете использовать:

delete from tablename
where id in 
(select id from tablename where <your-condition>)

или просто:

delete from tablename where <your-condition>

Простое кодирование 254 значений столбца id будет очень жестким в любом случае.

Ответ 8

DELETE FROM table_name WHERE id BETWEEN 1 AND 256;

Попробуйте это.