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

Posted

技术标签:

【中文标题】在Mysql中使用SN从表中删除许多行【英文标题】:Delete many rows from a table using SN in Mysql 【发布时间】:2019-01-06 11:26:09 【问题描述】:

我只是一名 IT 支持人员,只具备查询方面的基本知识。我想使用 ac_serial_number 从我的表中删除许多作为序列号行的表条目。

目前,我正在使用

DELETE FROM `asset_comparison` WHERE `asset_comparison`.`ac_serial_number` = 'SGH511XXXX'
DELETE FROM `asset_comparison` WHERE `asset_comparison`.`ac_serial_number` = '6CM451XXXX'

但我有大约 1000 个序列号要删除。我的方法需要几个小时。

你能告诉我高效删除吗?

【问题讨论】:

清晰具体。是 mysql 还是 MSSQL,column_name 在哪里 从 ac_comparison 中删除 3CQ301XXXX;是无效的 sql 应该是 DELETE from ac_comparison where ac_serial_number = '3CQ301XXXX'; ac_serial_number 看起来不像是序列位进入其中的任何类型的数字? 对不起,我忘记写了。修复由我重写代码 【参考方案1】:

如果只有 1000 左右?

然后你可以使用一个带有 IN 标准的 DELETE 来做到这一点。

例如:

DELETE FROM asset_comparison 
WHERE ac_serial_number IN (
 'SGH511XXXX'
,'6CM451XXXX'
-- Add more here
);

【讨论】:

@biiboy 感谢代表。顺便说一句,如果 SQL 会因为太多的数字而变得太大?另一种方法是将数字加载到临时表中,然后在该 IN 中使用从该临时表中选择数字的查询。

以上是关于在Mysql中使用SN从表中删除许多行的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 从表中删除所有行并将 ID 重置为零

MySQL 从表中删除所有行并将 ID 重置为零

MySQL InnoDB 从表中删除数据行后未释放磁盘空间

使用 mysql 和 php 从表中删除

在笔记本上使用 pyspark 从表中删除行

如何从表中删除然后删除引用的已删除行? (postgresql)