Удалите много строк из таблицы, используя id в Mysql
Я администратор Linux с только базовыми знаниями в запросах Mysql
Я хочу удалить много записей таблицы, которые являются ip-адресом из моей таблицы, используя id,
в настоящее время я использую
DELETE from tablename where id=1;
DELETE from tablename where id=2;
но я должен удалить 254 записи, поэтому этот метод займет несколько часов, как я могу сказать mysql удалить строки,которые я указываю, потому что я хочу пропустить удаление некоторых записей из этого 254.
удаление всей таблицы и необходимый импорт записи не вариант.
8 ответов
лучший способ-использовать 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;
что-то вроде этого может сделать его немного проще, вы, очевидно, можете использовать скрипт для создания этого или даже excel
DELETE FROM tablename WHERE id IN (
1,
2,
3,
4,
5,
6
);
если нужно сохранить только несколько строк, считают
DELETE FROM tablename WHERE id NOT IN (5,124,221);
это сохранит только некоторые записи и отбросит другие.
использовать 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));
нет IN
, это нормально. Вы также можете использовать диапазон:
DELETE from tablename where id<254 and id>3;
если идентификаторы для удаления являются смежными.
Если у вас есть какое-то "условие" в ваших данных, чтобы выяснить 254 идентификатора, вы можете использовать:
delete from tablename
where id in
(select id from tablename where <your-condition>)
или просто:
delete from tablename where <your-condition>
просто жесткое кодирование 254 значений столбца id было бы очень жестким в любом случае.