首页 > 语言 > 关键词  > MySQL字符串匹配最新资讯  > 正文

MySQL中的字符串模式匹配

2010-03-04 16:47 · 稿源:中国站长站综合

MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。

标准的SQL模式匹配

SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零个字符)。在 MySQL中,SQL的模式缺省是忽略大小写的。下面显示一些例子。注意在你使用SQL模式时,你不能使用=或!=;而使用LIKE或NOT LIKE比较操作符。

例如,在表pet中,为了找出以“b”开头的名字:

mysql> SELECT * FROM pet WHERE name LIKE "b%";

+--------+--------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+--------+--------+---------+------+------------+------------+

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

+--------+--------+---------+------+------------+------------+

为了找出以“fy”结尾的名字:

mysql> SELECT * FROM pet WHERE name LIKE "%fy";

+--------+--------+---------+------+------------+-------+

| name | owner | species | sex | birth | death |

+--------+--------+---------+------+------------+-------+

| Fluffy | Harold | cat | f | 1993-02-04 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

+--------+--------+---------+------+------------+-------+

为了找出包含一个“w”的名字:

mysql> SELECT * FROM pet WHERE name LIKE "%w%";

+----------+-------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+----------+-------+---------+------+------------+------------+

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

+----------+-------+---------+------+------------+------------+

为了找出包含正好5个字符的名字,使用“_”模式字符:

mysql> SELECT * FROM pet WHERE name LIKE "_____";

+-------+--------+---------+------+------------+-------+

| name | owner | species | sex | birth | death |

+-------+--------+---------+------+------------+-------+

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

+-------+--------+---------+------+------------+-------+

MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi、grep和sed的扩展正则表达式模式匹配的格式。

扩展正则表达式模式匹配

由MySQL提供的模式匹配的其他类型是使用扩展正则表达式。当你对这类模式进行匹配测试时,使用REGEXP和NOT REGEXP操作符(或RLIKE和NOT RLIKE,它们是同义词)。

扩展正则表达式的一些字符是:

“.”匹配任何单个的字符。

一个字符类“[...]”匹配在方括号内的任何字符。例如,“[abc]”匹配“a”、“b”或“c”。为了命名字符的一个范围,使用一个“-”。

“[a-z]”匹配任何小写字母,而“[0-9]”匹配任何数字。

“ * ”匹配零个或多个在它前面的东西。例如,“x*”匹配任何数量的“x”字符,“[0-9]*”匹配的任何数量的数字,而“.*”匹配任何数量的任何东西。

正则表达式是区分大小写的,但是如果你希望,你能使用一个字符类匹配两种写法。例如,“[aA]”匹配小写或大写的“a”而“[a-zA-Z]”匹配两种写法的任何字母。

如果它出现在被测试值的任何地方,模式就匹配(只要他们匹配整个值,SQL模式匹配)。

为了定位一个模式以便它必须匹配被测试值的开始或结尾,在模式开始处使用“^”或在模式的结尾用“$”。

为了说明扩展正则表达式如何工作,上面所示的LIKE查询在下面使用REGEXP重写:

为了找出以“b”开头的名字,使用“^”匹配名字的开始并且“[bB]”匹配小写或大写的“b”:

mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";

+--------+--------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+--------+--------+---------+------+------------+------------+

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

+--------+--------+---------+------+------------+------------+

为了找出以“fy”结尾的名字,使用“$”匹配名字的结尾:

mysql> SELECT * FROM pet WHERE name REGEXP "fy___FCKpd___5quot;;

+--------+--------+---------+------+------------+-------+

| name | owner | species | sex | birth | death |

+--------+--------+---------+------+------------+-------+

| Fluffy | Harold | cat | f | 1993-02-04 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

+--------+--------+---------+------+------------+-------+

为了找出包含一个“w”的名字,使用“[wW]”匹配小写或大写的“w”:

mysql> SELECT * FROM pet WHERE name REGEXP "[wW]";

+----------+-------+---------+------+------------+------------+

| name | owner | species | sex | birth | death |

+----------+-------+---------+------+------------+------------+

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Bowser | Diane | dog | m | 1989-08-31 | 1995-07-29 |

| Whistler | Gwen | bird | NULL | 1997-12-09 | NULL |

+----------+-------+---------+------+------------+------------+

既然如果一个正规表达式出现在值的任何地方,其模式匹配了,就不必再先前的查询中在模式的两方面放置一个通配符以使得它匹配整个值,

就像如果你使用了一个SQL模式那样。

为了找出包含正好5个字符的名字,使用“^”和“$”匹配名字的开始和结尾,和5个“.”实例在两者之间:

mysql> SELECT * FROM pet WHERE name REGEXP "^.....___FCKpd___7quot;;

+-------+--------+---------+------+------------+-------+

| name | owner | species | sex | birth | death |

+-------+--------+---------+------+------------+-------+

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

+-------+--------+---------+------+------------+-------+

你也可以使用“{n}”“重复n次”操作符重写先前的查询:

mysql> SELECT * FROM pet WHERE name REGEXP "^.{5}___FCKpd___8quot;;

+-------+--------+---------+------+------------+-------+

| name | owner | species | sex | birth | death |

+-------+--------+---------+------+------------+-------+

| Claws | Gwen | cat | m | 1994-03-17 | NULL |

| Buffy | Harold | dog | f | 1989-05-13 | NULL |

+-------+--------+---------+------+------------+-------+

总结

本介绍了有关字符串模式匹配的有关知识。标准的SQL模式匹配是SQL语言的标准,可以被其它关系数据库系统接受。扩展正规表达式模式匹配

是根据Unix系统的标准开发了,一般只可使用在MySQL上,但是其功能要比标准的SQL模式匹配更强。

举报

  • 相关推荐
  • 选奶必看:opo 在奶粉中的功效和作用大揭秘

    文章介绍了OPO结构脂在婴幼儿奶粉中的重要作用。OPO是一种接近母 乳脂肪结构的成分,能减少钙皂形成,改善宝宝便秘问题,促进钙质吸收和骨骼发育,同时增强肠道菌群平衡和免疫力。相比普通奶粉的POP结构,OPO更易消化吸收。佳贝艾特悦护羊奶粉不仅含有4.2g/100g的高含量OPO,其羊奶小分子结构吸收率高达95%,还添加10倍类HMO成分,临床验证可提升保护因子IgG达62%,全方位�

  • 忆联 Docker+MySQL 流控方案:打造安全高效存储底座,释放 AI 极致性能

    文章探讨了在AI时代背景下,基于Docker部署MySQL数据库的高效解决方案。通过Docker容器化技术,MySQL实现了灵活部署、资源高效利用和稳定隔离性,成为AI应用的首选数据库方案。测试结果显示,采用PCIe5.0企业级SSD配合Namespace技术和QoS优化策略,能精准控制性能偏差在2%以内,在混合读写场景下更可控制在1%以内。该方案显著提升了存储资源管理效率,为AI应用提供稳定可靠的数据存储支持,同时降低企业TCO成本,推动数据价值释放。

  • 百利好:关税风浪中的港湾,专业引领投资航向

    2025年全球市场面临关税政策剧烈变动带来的不确定性,科技股前景不明、黄金走势存疑、东南亚供应链重构暗藏机遇。百利好凭借15年市场积淀,通过专业分析团队将复杂政策转化为清晰投资路径,与智昇联合推出《焦点列车》《决战非农》等栏目帮助投资者理性决策。其2.0版APP实现毫秒级行情响应,并获国际权威机构认证,资金隔离存放确保安全。在政策动荡中,百利好以雄厚经济实力、顶尖机构合作及专业分析工具,为投资者提供避风港和精准导航,穿越政策风浪驶向稳健增长未来。(140字)

  • 融合数据中台与动态调度:林剑峰在共享出行智能算法开发中的技术探索

    本文讲述了林剑峰在智能出行领域的十年深耕历程。作为系统工程师,他主导构建了融合数据、算法与规则引擎的智能调度体系,通过动态聚类和路径规划模型显著提升了共享单车调度效率。其创新包括分级围栏模型、嵌入式调度判断模块等专利技术,实现了跨区域精准调度和系统自主运行能力。数据显示,他推动的系统使车辆调度效率提升37.38%,异常识别准确率显著提高。林剑峰的工作体现了"技术+业务"的系统设计理念,为城市智能交通建设提供了可借鉴的技术范式。

  • 小米YU7提供5个主驾驶模式 到底有什么区别

    小米YU7提供了5个主驾驶模式和4个场景模式,支持动力响应、转向手感、悬架软硬/高低等多类参数可调,以满足不同用户的驾驶习惯以及驾驶场景需求。 对于大部分用户来说,小米汽车官方推荐以下5个主驾驶模式,一键即可轻松切换小米YU7的5种不同性格”: 舒适:如果您更关注驾乘舒适性,请选择舒适”驾驶模式。这一模式下,动力相当于3.0T豪华SUV的动力水平。此时动力�

  • 准确率92%!苹果新模型可通过行为模式预测怀孕

    据媒体报道,苹果公司联合美国心脏协会和哈佛医学院布莱根妇女医院,在健康预测领域取得重大突破,推出基于行为数据的可穿戴模型WBM(Wearable Behavior Model)。 这项研究标志着健康监测从传统生物指标(如心率、血氧)向行为数据分析的拓展,为疾病预测提供了全新视角。 研究团队利用超过25亿小时的可穿戴设备数据训练WBM模型,使其能够从步数、活动能力等高层次行为

  • AI日报:12306 MCP Server上线;百度推AI搜索助手Tizzy.ai;ChatGPT录音模式面向Plus用户开放

    【AI日报】今日AI领域重要动态:1)百度推出无广告智能搜索助手Tizzy.ai,整合影视资源与深度思考功能;2)12306开源火车票查询引擎上线,采用FastAPI架构实现秒级响应;3)ChatGPT向Plus用户全面开放录音功能,支持实时记录与内容总结;4)开源SaaS模板FireGEO助力快速构建现代化Web应用;5)国产工具ReadMeX可一键生成高质量GitHub文档;6)百度AI助手新增视频通话功能,支持方言识别;7)Jacky

  • 零食消费也能献爱心,好想来创新模式为乡村儿童送营养

    零食品牌"好想来"携手腾讯公益推出创新公益模式,通过"会员积分助力+品牌捐赠"方式为乡村儿童提供营养加餐。用户消费积分可转化为公益力量,每350积分可兑换价值3.5元的营养餐(含牛奶和鸡蛋)。该模式让日常消费具有公益价值,将零食品尝与爱心传递结合。数据显示,1000位用户参与即可为100名儿童提供一天营养保障。项目聚焦乡村儿童营养缺口,通过商业与公益的创新结合,让零食消费超越买卖本身,成为连接城乡的温暖纽带。

  • 网友提议iPhone新建一个“制冷模式” 苹果客服回应:太幽默了

    夏日来临,近日全国多地迎来高温天气,各社交平台上出现网友纷纷吐槽iPhone发烫怎么办”。 对此,还有网友调侃:可以将手机运行模式命名为制冷模式”,以达到心静自然凉”的效果。

  • 窝趣公寓连续八年蝉联住房租赁MBI十强品牌 城中村改造模式引领行业创新

    2025年6月19日,第十四届迈点品牌发展大会在北京举行。百瑞纪集团旗下长租公寓品牌窝趣公寓连续第八年荣获"2024年度住房租赁运营商MBI十强品牌"称号,彰显其在长租公寓领域的品牌影响力和创新能力。窝趣通过"城中村改造与整租运营一体化"模式,盘活存量房源,增加保租房供给。以广州某项目为例,精准定位新青年需求,优化45平米以下小户型设计,并融合广府文化元素打造特色社区。运营方面强调前置规划和数字化赋能,通过SaaS云平台实现智能化管理,构建安全高效的租住环境。未来将继续深化城中村改造与保租房运营创新,推动行业高质量发展。