当前位置: 首页 > article >正文

MySQL零基础教程09—正则表达式搜索(上)

回顾

正则表达式开始之前,先回顾一下在数据过滤也就是select语句的介绍中,已经学过的知识点:
在这里插入图片描述

正则表达式是一种用于文本处理和模式匹配的强大工具。它通过特定的字符序列和语法规则来定义搜索模式,能够在文本中快速查找、替换符合特定模式的字符串。

基础使用:regexp代替like

查询教师表中,名字结尾为的教师信息:

select * from teachers where teacher_name regexp '强';

在这里插入图片描述
其实对比like的用法,可以看出来上边sql的用法和like的语法很类似:

只是regexp代替了like,在mysql中,regexp后边跟的就是正则表达式

(其实正则表达式也会损失性能)

我们再看第二个使用场景:查询教师表中,所在院系均以语系结尾的教师信息:

在这里插入图片描述
上边的sql我们使用了.,这是正则表达式的一个特殊字符,表示匹配任意一个字符,所以所有以“语系”结尾的院系的教师信息都被查找并返回了

这个时候会有一个问题:正则表达式会损失性能,而且看似上边的场景我们使用like和%也可以完成,那么二者区别在哪里呢?

我们可以通过两个例子进行对比体会:查找教师姓名包含的所有教师信息:

select teacher_name from teachers where teacher_name like '强';

在这里插入图片描述
select * from teachers where teacher_name regexp '强';

在这里插入图片描述
为什么使用like返回的是空呢?

其实是因为上述like语句因为没有使用通配符,所以会匹配列的完整值,也就是上述第一个sql的语义是查找教师表中所有教师姓名为“强”的值,当然匹配不到

而第二个sql使用的正则表达式,在正则表达式中,regexp '强'则表示的是教师姓名包含强,匹配的是该列的值中是否包含所需的字符串

今天的正则表达式就先介绍到这里,简单入门,下一篇我们熟悉几种更加复杂的正则表达式使用场景。


http://www.kler.cn/a/565287.html

相关文章:

  • C++ 设计模式 十:享元模式 (读书 现代c++设计模式)
  • [特殊字符] 蓝桥杯 Java B 组 之最小生成树(Prim、Kruskal) 并查集应用
  • AI人工智能机器学习之降维和数据压缩
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_rbtree_init
  • BERT模型深入理解——自然语言处理的里程碑
  • unity学习61:UI布局layout
  • Postman 11.34 最新版安装与API测试入门教程(Windows平台)
  • 《从零到全栈:Git 使用指南》
  • 【Qt】详细介绍如何在Visual Studio Code中编译、运行Qt项目
  • 【Linux】learning notes(3)make、copy、move、remove
  • PHP进阶-在Ubuntu上搭建LAMP环境教程
  • Node.js 文件操作教程
  • 【SpringBoot】——公共字段填充
  • 鸿蒙next 点击穿透实现
  • KNN算法在IT项目中的性能优化:从理论到实战
  • LeetCode 114.二叉树展开为链表
  • 【多线程-第三天-NSOperation的练习-tableView异步下载网络图片-重构代码-自定义cell Objective-C语言】
  • 怎么修改node_modules里的文件,怎么使用patch-package修改node_modules的文件,怎么修改第三方库原文件。
  • 解决 Ubuntu 24.04 虚拟机内无法ping 通 Hostname 的问题
  • 【C语言】握手问题(蓝桥杯)