数据库中查找某个字段中特殊字符方法
发布日期:2022-03-11 15:03:42 浏览次数:4 分类:技术文章

本文共 1067 字,大约阅读时间需要 3 分钟。

由于一些设计上的原因以及需求上的模糊导致在一些文件上传的功能上没有过滤上传文件的文件名中存在的特殊字符。

然后就有了这个要一次性查找出所有文件名字记录表中文件名包含特殊字符的记录。

1 SELECT * FROM dbo.table1 WHERE 2   3 (4 patindex('%[+%#@=&{},]%',FileName)>0 5  OR FileName like '%[%' 6  OR FileName like '%]%' 7 )

这里使用到了一个sql的内置函数 patindex()

语法格式:PATINDEX ( '%pattern%' , expression ) 

返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始算。

pattern字符串在expression表达式里没找就返回0,对所有有效的文本和字符串就是有效的数据类型。

如:

select patindex('%[d]%','rcrdsddddaadadffdr')

返回4,[]中d在字符串rcrdsddddaadadffdr的第一次出现的位置。

select patindex('%[cd]%','rcrdsdddrdaadadffdr')

返回2,[]中c,d在其中一个的位置,返回最先出现的这个位置,c在此字符串里第一次出现位置是2,而d是4,结果取最先的那个。

select patindex('%[sd]%','rcrdsdddrdaadadffdr')

返回4,[]中c,d在其中一个的位置,返回最先出现的这个位置,s在此字符串里第一次出现位置是5,而d是4,结果取最先的那个。

select patindex('%[^r]%','rrrdsdddrdaadadffdr')

返回4,除[]中的字符串的匹配字符,第一次出现d不在[^r]里,所以就找到第一次这位。

select patindex('%[^rd]%','rrrdsdddrdaadadffdr')

返回5,除[]中的字符串的匹配字符,第一次出现s不在[^rd]里,所以就找到第一次这位。

select patindex('%[^rsd]%','rrrdsdddrdaadadffdr')

返回11,除[]中的字符串的匹配字符,第一次出现a不在[^rsd]里,所以就找到第一次这位。

但是这里 不能用这个函数来查询包含"["和"]"

 

转载于:https://www.cnblogs.com/moonbo/p/5436253.html

转载地址:https://blog.csdn.net/weixin_30267785/article/details/99215936 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:yarn application命令介绍
下一篇:Java配置----JDK开发环境搭建及环境变量配置

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2023年09月02日 04时39分01秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章