文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

【业务功能篇07】Mysql 模糊查询

2023-10-11 08:13

关注

业务场景:我们对不同的业务逻辑进行数据处理时,多数是离不开需要模糊匹配的时候,比如要获取该表某个字段中,含有某个具体的字符内容,过滤出业务想要的数据。

 这里介绍有这么几种:

一、MySQL通配符模糊查询(%,_)

 通配符的分类

  • "%" 百分号通配符: 表示任何字符出现任意次数 (可以是0次)。
  • "_" 下划线通配符:表示只能匹配单个字符,不能多也不能少,就是一个字符。当然,也可以like "陈____",数量不限。
  • like操作符:LIKE作用是指示mysql后面的搜索模式是利用通配符而不是直接相等匹配进行比较;但如果like后面没出现通配符,则在SQL执行优化时将 like 默认为 “=”执行

注意: 如果在使用like操作符时,后面没有使用通用匹配符(%或_),那么效果是和“=”一致的。在SQL执行优化时查询优化器将 like 默认为 “=”执行,SELECT * FROM movies WHERE movie_name like 'A';只能匹配movie_name=“A”的结果,而不能匹配像“AA”或“AB”这样的结果.
 

 

举例:

-- 模糊匹配含有“智能”字的数据

SELECT * from app where PROF like '%智能%';

-- 模糊匹配以“智能”字结尾的数据,  开头则是 '智能%'

SELECT * from app where PROF like '%智能';

-- 查询以“会”为结尾的,长度为三个字的数据,如:"生日会", 两个下划线

SELECT * from dF where a like '__会';

二、MySQL内置函数检索(locate,position,instr) 

话接上文,通过内置函数locate,position,instr进行匹配,相当于Java中的str.contains()方法,返回的是匹配内容在字符串中的位置,效率和可用性上都优于通配符匹配。

SELECT * from appF where INSTR(`app`, '%') > 0; SELECT * from appF where LOCATE('%', `app`) > 0; SELECT * from appF where POSITION( '%' IN `app`) > 0;

三个内置函数很类似,这里就介绍 instr

返回字符串str中第一次出现子字符串substr的位置。INSTR()与LOCATE()的双参数形式相同,只是参数的顺序相反。

实例:

-- 用INSTR关键字进行模糊匹配,功能跟like一样 ,等同于:"like '%智能%'"

SELECT * from app where INSTR(`PROF`, '智能');


 

三、MySQL基于regexp的正则匹配查询

REGEXP 不支持通配符"%、_",支持正则匹配规则

-- REGEXP '智能' 等同于 like '%智能%'

SELECT * from app where appName REGEXP '智能';-- 等同于SELECT * from app where appName like '%智能%';

-- 支持 "|" ‘或’符号,匹配包含“中国”或“互联网”或“大学”的数据,支持叠加多个

SELECT * from app where appName REGEXP '中国|互联网|大学';

 更多技巧细节,参考:https://blog.csdn.net/qq_46940224/article/details/125031647

来源地址:https://blog.csdn.net/studyday1/article/details/130965900

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯