在我的SQL Server数据库中,像数据库这样的场景有一个主键,主键的格式如'0000100001'和'C100001'
我想删除数据库中以“0”开头的所有记录,但不记录以“C”开头的记录。
我尝试了内置函数SUBSTRING('primary_key',1,1)='0'
,但它没有帮助我..
谢谢..
答案 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
(以大写字母)的任何内容。