sql查询地址中包含某个字段(SQL查询字段被包含语句)
sql查询地址中包含某个字段
SQL查询字段被包含语句前言
说到SQL的模糊查询,最先想到的,应该就是like关键字。
当我们需要查询包含某个特定字段的数据时,往往会使用 ‘%关键字%' 查询的方式。例如:
SELECT ... FROM 表名 WHERE 字段名 LIKE '%关键字%'
这应该可以算是一种典型的”包含XXX”的方式,但如果我们需要查询字段被包含于特定字符的数据时呢?
比如,我有一张联系人数据表ConnectName,其中有个字段用于记录姓名name。我想获取名为小兰和灰原的人的联系资料。正常情况下,我们首先能想到的做法应该是:
SELECT * FROM ConnectName WHERE name = '小兰' OR name = '灰原'
这样的做法是可以实现这种目的的。如果这时候,我突然想,再查一个人,比如说“柯南”,那么我们就要修改SQL的结构,添加一个Where条件句:
SELECT * FROM ConnectName WHERE name = '小兰' OR name = '灰原' OR name = '柯南'
我们知道,OR条件查询本身是属于效率较低的,而且结构变动的语句在MyBatis实现稍微麻烦些(当然也是可以实现的,遍历插入字段就行了)。
能不能简单一些呢?我可以把所有关键字放在一起,只用一个Where条件去实现吗?
CHARINDEX登场
这时候,我们就可以用 CHARINDEX 关键字了,CHARINDEX可以返回某个字段在一串文字中出现的位置,跟String的indexOf用法类似,不多废话,我们来举个栗子:
CHARINDEX('李白','曹操很帅') =0
在上面的栗子中,因为曹操很帅不包含李白关键字,所以找不到,返回0.
CHARINDEX('李白','李白很帅') =1
同样的栗子,因为包含里李白关键字,会返回关键字所在的开头第一个字的索引,所以返回1.
了解了使用方法之后,我们就可以运用CHARINDEX关键字优化下我们的SQL语句:
SELECT * FROM ConnectName WHERE CHARINDEX(name ,'小兰灰原柯南')>0
如果name字段对应的名字在 ‘小兰灰原柯南' 中出现,那么CHARINDEX函数就会返回大于1,就可以得到我们想要的数据啦(他们3个人也可以在一起愉快的玩耍咯^-^)
对应的mybatis实现也相对简洁
SELECT * FROM ConnectName WHERE <!--[CDATA[ AND CHARINDEX(name ,#{传入的参数}) --> 0 ]]>
如果后期我们想要加入一个新的人,比如毛利小五郎,只需要在传入的参数中加入 ‘小兰灰原柯南毛利小五郎' 就可以了,是不是简单了许多呢?
以上所述是小编给大家介绍的SQL字段的被包含查询语句,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
- win10安装mysql8.0如何启动(win10下mysql 8.0.23 安装配置方法图文教程)
- sql中where和having可以同时用吗(SQL where条件和jion on条件的详解及区别)
- linux安装sqlserver 2008 r2(Ubuntu 下安装SQL Server教程)
- mysql不兼容问题(解决mysql 组合AND和OR带来的问题)
- sql提交事务代码(SQL SERVER提交事务回滚机制)
- python怎样读取mysql数据(使用Python将Mysql的查询数据导出到文件的方法)
- sql注入原理详细(Sql注入原理简介_动力节点Java学院整理)
- sql中的条件语法(SQL 中STUFF用法)
- mysql中行列转换(mysql 行列转换的示例代码)
- mysqlinnodb数据存储格式(MySQL InnoDB ReplicaSet副本集简单介绍)
- mysql为啥使用b+树(MySQL用B+树作为索引结构有什么好处)
- mysql 操作系统时区(mysql时区查看与设置方法)
- SQL Server中row_number的用法
- 适合小白入门的mysql教程索引简介(一篇带给你MySQL高性能索引)
- SQL Server无法连接远程数据库的解决方法
- mysql的三大组件(详解MySQL8的新特性ROLE)
- 越南特产(越南特产首饰)
- TVB负评王连续挑战警察角色《使徒行者3》中将饰演卧底(TVB负评王连续挑战警察角色使徒行者3中将饰演卧底)
- 《精英律师》剧照首曝光,实力演员飙戏,演绎律政职场百态(精英律师剧照首曝光)
- 靳东领衔打造高精职场 新丽出品《精英律师》曝定妆照(靳东领衔打造高精职场)
- 靳东新剧《精英律师》定档,众星云集,这剧可追(靳东新剧精英律师定档)
- 精英律师 廖佳敏封印恋情曝光,顾婕马失前蹄 你个老不死的(廖佳敏封印恋情曝光)
热门推荐
- linux下如何启动phpstudy面板(详解phpstudy linux web面板小皮面板V0.2版本正式发布)
- mac电脑安装php环境(Mac下搭建php开发环境教程)
- microsoftsqlserver官网(Microsoft SQL Server数据库各版本下载地址集合)
- idea 远程部署docker(IDEA使用Docker插件菜鸟教程)
- 用php递归函数实现阶乘的计算(php求斐波那契数的两种实现方式递归与递推)
- elasticsearch启动报错(解决Docker启动Elasticsearch7.x报错的问题)
- APP界面设计的建议
- 服务器虚拟化需要哪些技术(认识云服务器的虚拟化实现途径)
- centosdocker镜像安装mysql(linux下利用Docker安装mysql的步骤)
- nginx如何配置不显示nginx名字(Nginx安装完成没有生成sbin目录的解决方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9