MS SQL删除查询指南

时间:2012-01-16 11:57:26

标签: sql-server

在我的SQL Server数据库中,像数据库这样的场景有一个主键,主键的格式如'0000100001'和'C100001'

我想删除数据库中以“0”开头的所有记录,但不记录以“C”开头的记录。

我尝试了内置函数SUBSTRING('primary_key',1,1)='0',但它没有帮助我.. 谢谢..

2 个答案:

答案 0 :(得分:0)

SUBSTRING('primary_key',1,1)='0' 

测试字符串文字 "primary_key"是否以字符0开头(它不会返回零行),摆脱引用的单引号专栏。 (注意:如果您的专栏实际上没有被称为primary_key,您当然需要参考其实际名称!)

或者您可以使用WHERE primary_key LIKE '0%'来使用索引来定位行,从而提高效率。

答案 1 :(得分:-1)

我不知道MS SQL,但在MySQL中它会是这样的:

"DELETE * FROM your_table WHERE primary_key LIKE '0%' AND primary_key NOT LIKE 'C%'"

您可以使用LIKE运算符实质上搜索字符串或正则表达式的出现。它可以在您正在寻找的模式的前面,后面或后面的前面,后面或后面加上通配符,例如%

例如:

LIKE 'C%'会匹配以C

开头的所有内容

LIKE '%C'会匹配以C

结尾的任何内容

LIKE '[A-Z]%'将匹配以大写字母开头的任何内容

LIKE '%LOL%'会匹配其中包含单词LOL(以大写字母)的任何内容。

进一步阅读 http://msdn.microsoft.com/en-us/library/ms179859.aspx