在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从表中删除许多行的主要内容,如果未能解决你的问题,请参考以下文章