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   0 ]]>

登录后复制

如果后期我们想要加入一个新的人,比如毛利小五郎,只需要在传入的参数中加入 ‘小兰灰原柯南毛利小五郎’ 就可以了,是不是简单了许多呢?

以上就是SQL的模糊查询实例讲解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1616751.html

(0)
上一篇 2025年2月19日 00:22:56
下一篇 2025年2月19日 00:23:12

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 输入手机号一键查询快递入口网址大全

    php小编柚子带您了解一键查询快递入口网址大全。在现代生活中,快递已经成为我们日常不可或缺的一部分。然而,每次想要查询快递信息时,我们往往需要打开不同的快递公司官网或者下载不同的手机应用,十分麻烦。为了解决这个问题,一键查询快递入口网址应运…

    2025年5月2日
    000
  • D3.js 实现动态进度条实例

    d3 的全称是(data-driven documents),顾名思义可以知道是一个被数据驱动的文档。听名字有点抽象,说简单一点,其实就是一个 javascript 的函数库,使用它主要是用来做数据可视化的。如果你不知道什么是 javasc…

    2025年5月1日 编程技术
    000
  • Node.js爬取豆瓣数据实例

    这次给大家带来Node.js爬取豆瓣数据实例,Node.js爬取豆瓣数据的注意事项有哪些,下面就是实战案例,一起来看一下。 一直自以为自己vue还可以,一直自以为webpack还可以,今天在慕课逛node的时候,才发现,自己还差的很远。众所…

    2025年5月1日 编程技术
    000
  • 认识一下vue中的模板语法,聊聊容器和实例的关系

    本篇文章带大家了解一下vue中的模板语法,介绍一下插值语法和指令语法,并聊聊容器和实例的关系,希望对大家有所帮助! 我要一步一步往上爬~大家好,今天我们来一起认识一下模板语法这个概念! 一、模板语法 模板语法分为插值语法和指令语法两种。 立…

    2025年4月1日
    200
  • VUE3入门实例教程

    vue.js是一款流行的javascript框架,它具有易于上手、便捷灵活等特点。vue.js 3是全新的版本,它增加了很多新特性和功能。本文将为您介绍如何使用vue.js 3进行入门实例开发,以帮助您快速掌握vue.js 3的基础知识。 …

    编程技术 2025年4月1日
    100
  • VUE3入门实例:制作一个简单的视频播放器

    随着新一代前端框架的不断涌现,vue3作为一个快速、灵活、易上手的前端框架备受热爱。接下来,我们就来一起学习vue3的基础知识,制作一个简单的视频播放器。 一、安装VUE3 首先,我们需要在本地安装VUE3。打开命令行工具,执行以下命令: …

    编程技术 2025年4月1日
    200
  • VUE3初学者必备的开发技巧与实例

    vue3作为目前前端框架中使用率日益增长的框架之一,越来越多的开发者也开始尝试学习和使用它。尤其是在国内,vue3的应用已经覆盖了很多领域,无论是移动端还是pc端都有广泛的应用。因此,本文将为初学者提供一些vue3开发的必备技巧和实例,以帮…

    编程技术 2025年4月1日
    100
  • Vue文档中的created函数实例分析

    vue.js是一个现代的前端框架,它采用了一些常见的编程概念,如组件和数据绑定。在vue.js的文档中,一个很常用的函数是created函数。本文将对vue文档中的created函数做一个实例分析。 created函数 Vue.js中的cr…

    编程技术 2025年4月1日
    200
  • Photoshop图层样式和混合模式区别实例

     相当简单的教程。不过我认为对图层样式 %ignore_a_2%%ignore_a_3%的理解有很大帮助,先来看下效果图:  我们以橙色为例。  只需调整三处。                                        …

    2025年4月1日 编程技术
    200
  • Photoshop CS3 友基绘影2数位板绘图实例

      本photoshop教程是关于绘制中国城池插画,绘制效果是一个中国风城池概念设计稿,主要要注意画面整体布局还有光影处理问题,教程适合有一定绘画基础的网友参考学习。  工具:photoshop cs3软件、友基绘影2数位板  相关文章:p…

    2025年4月1日
    100

发表回复

登录后才能评论