首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL REGEXP 正则表达式用法详解与示例

正则表达式是描述搜索模式的特殊字符串。它是一个强大的工具,提供了一种简洁而灵活的方法,用于根据模式识别文本字符串(如字符和单词)。它有自己的语法,由正则表达式处理器解释。正则表达式在几乎所有平台上都被广泛使用,从编程语言到数据库,包括MySQL。

正则表达式使用反斜杠作为转义字符,如果使用了双反斜杠,则应在模式匹配中考虑该转义字符。正则表达式不区分大小写。在MySQL中缩写为REGEX或REGEXP。

使用正则表达式的好处是,我们不局限于搜索基于固定模式的字符串,该模式在LIKE操作符中包含百分号(%)和下划线(_)。正则表达式有更多元字符,在执行模式匹配时允许更多的灵活性和控制。

我们之前已经学习了通配符,它允许我们获得与正则表达式类似的结果。因此,我们可能会问,如果我们能得到与通配符相同的结果,为什么还要学习正则表达式呢?这是因为正则表达式允许我们以比通配符更复杂的方式搜索数据。

在 MySQL 中使用正则表达式的基本语法:

SELECT column_lists

FROM table_name

WHERE field_name REGEXP ‘pattern’ ;

column_list 定义结果集中返回的列名。

table_name是检索数据的表名称。

WHERE field_name 表示在其上执行正则表达式的列名。

REGEXP是正则表达式操作符,pattern 是REGEXP匹配的搜索条件。

我们还可以使用RLIKE操作符,它是REGEXP的同义词,提供与REGEXP相同的结果。通过使用REGEXP而不是LIKE,可以避免与LIKE操作符一起使用该语句的混淆。

如果WHERE field_name中的值与模式匹配,则该语句返回true。否则,返回false。如果field_name或pattern是NULL,则结果总是NULL。REGEXP运算符的否定形式不是REGEXP。

下表中的正则模式可应用于 REGEXP 操作符中。

了解以上的正则需求后,我们就可以根据自己的需求来编写带有正则表达式的SQL语句。以下我们将列出几个小实例(表名:person_tbl )来加深我们的理解:

查找name字段中以’st’为开头的所有数据:

查找name字段中以’ok’为结尾的所有数据:

查找name字段中包含’mar’字符串的所有数据:

查找name字段中以元音字符开头或以’ok’字符串结尾的所有数据:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20211022A0DU9H00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券