T-SQL---多值模糊查询的处理
来源:互联网 发布:易语言调用c dll 编辑:程序博客网 时间:2024/05/16 08:42
多值模糊查询的处理
所谓多值模糊查询,就是应用程序中传递过来多个参数,对这些参数做拆分,拆分之后,对拆分结果的key值分别做模糊查询处理
对于精确匹配时,不管是单个Key值还是多个Key值,都很容易处理,备选方案也很多
对于模糊查询,单个key值也很容易,也就是 ……where name like '%parameter%'(不要告诉我全模糊效率低之类的,我这里不是做性能对比的)
但是对于多个Key值的模糊处理,就不是太直接了,比如name字段,输入'三,四,五',要求分别按照三,四,五三个字符做模糊匹配
多值模糊查询可以参考如下的方式处理,欢迎提供更好的办法,谢谢了
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)
0 0
- T-SQL---多值模糊查询的处理
- sql特殊字符的模糊查询处理
- SQL的模糊查询
- SQL模糊查询时特殊字符的处理方式总结
- sql 模糊查询like 如何处理 NULL
- sql 模糊查询like 如何处理 NULL
- SQL模糊查询的语法
- Ibatis 的 模糊查询 SQL
- sql 时间的模糊查询
- SQL模糊查询的语法
- SQL模糊查询的写法
- SQL模糊查询的语法
- SQL语句的模糊查询
- SQL多条件查询,模糊查询,模糊多条件查询
- T-SQL逻辑查询处理的各个阶段
- SQL多关键字模糊查询
- sql多关键词模糊查询
- SQL 的查询语句,模糊查询
- IoC概述
- 题目1163:素数
- 在mac上安装matplotlib (python)
- JSONP jQuery Ajax 跨域请求
- Leetcode 300. Longest Increasing Subsequence
- T-SQL---多值模糊查询的处理
- Http协议
- 图片多选上传拖拽切换位置
- Gateway安装部署
- ubuntu14.04安装ffmpeg
- Windows平台使用Python切换用户运行程序
- NDB Cluster (分布式存储引擎)存储引擎简单简介及Mysql cluster的实现
- Bigdata
- SQL Server 并行操作优化,避免并行操作被抑制而影响SQL的执行效率