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字段的被包含查询语句,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
- SQL中in和exists的区别
- mysql中默认排序教程(基于mysql 默认排序规则的坑)
- mysql有哪些索引和聚簇索引(MySQL 独立索引和联合索引的选择)
- php+mysql源码部署教程(在WIN主机IIS上支持PHP和MySQL实现方法)
- sqlserver2012如何安装如何使用(Sql server 2012 中文企业版安装图文教程附下载链接)
- mysqldump属于哪种备份(MySQLDump的备份小技巧)
- sqlserver数据库中锁的4种类型(SQLSERVER对加密的存储过程、视图、触发器进行解密推荐)
- mysql连接查询原理(MySQL连接查询你真的学会了吗?)
- mysql双主状态不一致(MySQL GTID主备不一致的修复方案)
- sqlserver 多实例怎么算许可(SQL Server使用row_number分页的实现方法)
- SQL中Exists的用法
- mysql数据备份的几种方式(MySQL数据库备份过程的注意事项)
- sql2008提供身份认证模式(SqlServer2000+ 身份证合法校验函数的示例代码)
- sql怎么设置排列(SQL写法--行行比较)
- centos如何安装mysql8.0版本(Centos7下安装MySQL8.0.23的步骤小白入门级别)
- mysql中使用show table status 查看表信息
- 肌肉小子陈康, 亚洲巨兽 黄哲勋,哪个才是你的菜(肌肉小子陈康亚洲巨兽)
- 新闻周刊 青岛网红 赵厂长 编段子一箩筐输出快乐,陪父亲十二载勇斗病魔(新闻周刊青岛网红)
- 44岁夏雨演谋女郎爸,大其24岁却看不出,互动不怕袁泉吃醋(44岁夏雨演谋女郎爸)
- 全椒人,你还记得吗 那年,那人,那网,那些我们的青春记忆(全椒人你还记得吗)
- 全椒人在苏州10周年联谊会在苏州举办(全椒人在苏州10周年联谊会在苏州举办)
- 这个全椒人被通报表彰,看看你认识吗(这个全椒人被通报表彰)
热门推荐
- tensorflow做识别分类(使用TensorFlow实现二分类的方法示例)
- 网站提高服务器响应(网站解决和优化Server is too busy的一些方法)
- python代码返回值(Python 函数返回值的示例代码)
- console.table调试JSON对象或字符串
- php类的属性和方法(PHP进阶学习之反射基本概念与用法分析)
- laravel验证码依赖(laravel5.2表单验证,并显示错误信息的实例)
- vue怎么编写规则(vue使用节流函数的踩坑实例指南)
- phpstudy最佳配置(phpstudy如何开启openSSL?)
- nginxlocation匹配参数(nginx location优先级的深入讲解)
- django删掉模型的字段(django中ORM模型常用的字段的使用方法)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9