我要删除几百条这样的数据where 怎么写?

来源:百度知道 编辑:UC知道 时间:2024/05/26 17:18:21
abc00001
abc00002
abc00003

delete form table where name ?????
不好意思,我没说清楚,我要删除的是其它的一些像这样的,比如删除
abc00001
abc00002
abc00003
但要保留
abc00004
abc00005
abc00006

delete form table where name ='abc00001' or name ='abc00002' or name ='abc00003'

where left(name,3)="abc"

delete table where left(name,3)='abc'

没说清楚,要是100条之外还有abc开头的就不能用 like 'abc%' 。这100条有规律么?要是有规律可以用ue的列编辑批处理一下,不算麻烦。
这种情况因该是没法用一条sql语句解决问题的,除非你需要删除的部分或者不需要删除的部分有什么规律。用or这种穷举的方式在这个数量级也该行不通,用通配符又会删除多余的数据。如果你想通过一条sql完成这样的工作确实不太好做。但是如果只是想达成目的还是有一些方法的,我上面提到的批处理方式,看你的列子我假定你得数据是有一定排列顺序并且中间没有跳号(像需要保留abc00005 而删除abc00004 abc00006这种情况)。你可以通过查询把需要删除的数据的主键复制下来。然后用有列编辑的编辑器批量处理,效果类似
delete from table where name ="abc00001";
delete from table where name ="abc00002";
delete from table where name ="abc00003";
delete from table where name ="但要保留";
delete from table where name ="abc00004";
delete from table where name ="abc00005";
delete from table where name ="abc00006";

这样你写1000条sql和你写一条sql用的时间是一样的。

dele