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字段的被包含查询语句,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
- sqlserver怎么修改表结构(SQL Server中修改“用户自定义表类型”问题的分析与方法)
- SQL Server作业活动监视器
- mysql 加锁处理分析(mysql死锁和分库分表问题详解)
- php+mysql源码部署教程(在WIN主机IIS上支持PHP和MySQL实现方法)
- mybatis为什么还用mysql(关于MyBatis连接MySql8.0版本的配置问题)
- mysql使用步骤(聊一聊MySQL角色Role功能)
- mysql怎么建立主键外键(mysql 实现设置多个主键的操作)
- mysql5.5.36版本介绍(WDCP控制面板升级mysql为5.7.11的方法)
- mysql最佳配置(详解DBeaver连接MySQL8以上版本以及解决可能遇到的问题)
- SqlServer 表单查询问题及解决方法(SqlServer 表单查询问题及解决方法)
- 5.6以上版本mysql数据复制(MySQL5.7并行复制原理及实现)
- sqlserverlog原理(sql server中错误日志errorlog的深入讲解)
- sqlserver中复合索引(浅析SQL Server 聚焦索引对非聚集索引的影响)
- mysql的默认事务隔离级别(啥是 MySQL 事务隔离级别?)
- sqlserver访问远程数据库(SQL Server实现跨库跨服务器访问的方法)
- mysql获取随机数(MySQL 生成随机数字、字符串、日期、验证码及 UUID的方法)
- 二胎家庭老大爱闹情绪,用这招很有效(二胎家庭老大爱闹情绪)
- 一个30岁男人外遇失败的全过程(一个30岁男人外遇失败的全过程)
- 《无敌破坏王2》 不聊彩蛋,聊聊我从动画里看到的现实那些事儿(无敌破坏王2不聊彩蛋)
- 《寄生虫》 三观不正 人类悲欢从来不相通,感同身受也并非本能(寄生虫三观不正)
- 这部动漫中的女孩子,可比101女孩更加励志(这部动漫中的女孩子)
- 《白狐的人生》热拍 贾征宇偶像包袱难自弃 图(白狐的人生热拍)
热门推荐
- 静态web服务器nginx(WEB服务器该选择 Apache 还是 Nginx?)
- centos下ftp服务器搭建(CentOS搭建FTP文件服务的步骤)
- windows搭建php环境(windows 2008r2+php5.6.28环境搭建详细过程)
- C#如何读取csv格式文件
- 媲美serv-u开源ftp(个人FTP建站域名解析serv-u常见问题解决方法之完全解决方案)
- laravel的验证规则(解决在Laravel 中处理OPTIONS请求的问题)
- webmaven项目如何启动(js基础语法与maven项目配置教程案例)
- Sql Server 更新锁(UPDLOCK)
- docker映射端口(Docker初级网络端口映射的配置)
- python 装饰器模式(python重试装饰器的简单实现方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9