Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在where子句-SQLServer中使用Like时从数据库中删除行_Sql_Sql Server_Sql Delete - Fatal编程技术网

如何在where子句-SQLServer中使用Like时从数据库中删除行

如何在where子句-SQLServer中使用Like时从数据库中删除行,sql,sql-server,sql-delete,Sql,Sql Server,Sql Delete,我有一个包含大量行的数据库表。现在,该表的主键在其几行中有特殊字符。我想用这个命令删除它们 DELETE FROM my_table WHERE symbol LIKE '%$%' OR symbol LIKE '%^%' OR symbol LIKE '%[%' OR symbol LIKE '%*%' OR symbol LIKE '%&%' OR symbol LIKE '%\%%' ESCAPE '\' 但是这个查询需要很多时间 是否有其他方法可以

我有一个包含大量行的数据库表。现在,该表的主键在其几行中有特殊字符。我想用这个命令删除它们

DELETE FROM my_table
WHERE symbol LIKE '%$%'
   OR symbol LIKE '%^%'
   OR symbol LIKE '%[%'
   OR symbol LIKE '%*%'
   OR symbol LIKE '%&%'
   OR symbol LIKE '%\%%' ESCAPE '\'
但是这个查询需要很多时间


是否有其他方法可以使此查询更快、更高效?如果您需要有关我的表或数据库的更多详细信息,请告诉我。谢谢

这会有一点帮助:

WHERE symbol like '%[$^\[*&\%]%'
默认转义字符是反斜杠,因此
escape'\'
是多余的

但是,由于您的查询必须进行完整的表扫描,这会有所帮助,但速度仍然很慢