T-SQL---多值模糊查询的处理

发布时间:2020-06-05 01:04:20 作者:26度出太阳
来源:网络 阅读:506

    

多值模糊查询的处理

所谓多值模糊查询,就是应用程序中传递过来多个参数,对这些参数做拆分,拆分之后,对拆分结果的key值分别做模糊查询处理

对于精确匹配时,不管是单个Key值还是多个Key值,都很容易处理,备选方案也很多

对于模糊查询,单个key值也很容易,也就是 ……where name like '%parameter%'(不要告诉我全模糊效率低之类的,我这里不是做性能对比的)

但是对于多个Key值的模糊处理,就不是太直接了,比如name字段,输入'三,四,五',要求分别按照三,四,五三个字符做模糊匹配

 

多值模糊查询可以参考如下的方式处理,欢迎提供更好的办法,谢谢了

T-SQL---多值模糊查询的处理

CREATE TABLE [dbo].[Student](    [S#] [varchar](50) NULL,    [Sname] [varchar](50) NULL,    [Ssex] [varchar](2) NULL)INSERT INTO Student VALUES (1,'张三',1)INSERT INTO Student VALUES (2,'李四',1)INSERT INTO Student VALUES (3,'王五',1)INSERT INTO Student VALUES (4,'赵六',1)INSERT INTO Student VALUES (5,'孙七',1)--精确匹配的话,不管是单值还是多值,都很好处理select * from Student where Sname in ('张三','李四')--单值模糊的好处理select * from Student where Sname Like '%五%'--多值模糊匹配,就没有这么直接了--所谓的多值模糊匹配,就是外面传递进来多个值,这些值差分开之后,每个值都做模糊查询--SQL既要写满足功能性需求,又要简明的清晰,一开始还想写函数什么玩意的,--后来想了想,可以这么处理;with CTENameas(    --这是一个字符串拆分函数
    select id,concat('%',s,'%') as name from dbo.f_splitStrToTable('四,五,六',',')
)select * from Studentwhere exists(    select 1 from CTEName where Sname like name
)--查询结果S# Sname Ssex2 李四 13 王五 14 赵六 1(3 row(s) affected)

T-SQL---多值模糊查询的处理


推荐阅读:
  1. mybatis like 模糊查询
  2. 多值模糊查询报表的制作

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

key --

上一篇:SQL Server数据库日志分离

下一篇:网络基础---数据链路层

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》