iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >【业务功能篇07】Mysql 模糊查询
  • 164
分享到

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

mysql数据库java 2023-10-11 08:10:58 164人浏览 安东尼
摘要

业务场景:我们对不同的业务逻辑进行数据处理时,多数是离不开需要模糊匹配的时候,比如要获取该表某个字段中,含有某个具体的字符内容,过滤出业务想要的数据。  这里介绍有这么几种: 一、Mysql通配符模糊查询(%,_)  通配符的分

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

 这里介绍有这么几种:

一、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

您可能感兴趣的文档:

--结束END--

本文标题: 【业务功能篇07】Mysql 模糊查询

本文链接: https://www.lsjlt.com/news/428087.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作