在 Mysql 中使用 id 从表中删除许多行

我是一个 Linux 管理员,只有基本的 Mysql 查询知识

我想删除许多表条目,它们是 ip 地址从我的表使用 身份证,

目前我正在使用

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

但是我必须删除254个条目,所以这个方法将花费几个小时,我怎么能告诉 mysql 删除我指定的行,因为我想跳过删除这254个条目。

不能删除整个表并导入所需的条目。

223601 次浏览

IN怎么样

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

像这样的东西可能会使它更容易一点,你显然可以使用一个脚本来生成它,甚至 Excel

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

使用 IN条款

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

或者你可以合并使用 BETWEENNOT IN来减少你必须提到的数字。

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

最好的方法是使用 IN语句:

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

如果您有连续的 ID,也可以使用 BETWEEN:

DELETE from tablename WHERE id BETWEEN 1 AND 254;

当然,您可以使用其他 WHERE 子句来限制某些 ID:

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

如果只需要保留几行,请考虑

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

这将只保留一些记录,而丢弃其他记录。

其他人建议使用 IN,这很好。你也可以使用一个范围:

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

如果要删除的 id 是连续的。

如果你的数据中有一些“条件”可以计算出254个 id,你可以使用:

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

或者简单地说:

delete from tablename where <your-condition>

简单地硬编码 id 列的254个值在任何情况下都是非常困难的。

DELETE FROM table_name WHERE id BETWEEN 1 AND 256;

试试这个。

希望能有所帮助:

DELETE FROM tablename
WHERE tablename.id = ANY (SELECT id FROM tablename WHERE id = id);
DELETE FROM tablename WHERE id > 0;
OR
DELETE FROM tablename WHERE id <255;

它从1到254删除 id