六. MySQL 通过正则表达式进行搜索

本文深入探讨MySQL中正则表达式的应用技巧,包括特殊字符的匹配、字符类的使用、定位符的理解等,通过具体案例展示如何精确查找数据库中的特定模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL 通过正则表达式进行搜索

  1. 通过正则表达式来匹配
    REGEXP在列值内进行匹配,如果被匹配的文本在列值中出现, REGEXP将会找到它,相应的行将被返回。LIKE匹配整个列。如果被匹配的文本在列值
    中出现, LIKE将不会找到它,相应的行也不被返回(除非使用通配符)
# 匹配prob字段中包含0.11的字符
SELECT kw, prob FROM key_words WHERE prob REGEXP '0.11' ORDER BY prob;

在这里插入图片描述
发现结果中有如:0.04这类的结果,显然是.需要转义

SELECT kw, prob FROM key_words WHERE prob REGEXP '0\.11' ORDER BY prob;

在这里插入图片描述
结果显示还是不对

SELECT kw, prob FROM key_words WHERE prob REGEXP '0\\.11' ORDER BY prob;

在这里插入图片描述
看来需要两个\才行啊

  1. OR匹配-为搜索两个串之一(或者为这个串,或者为另一个串),使用|
# 选出prob 中包含0.11或者0.2的字符
SELECT kw, prob FROM key_words WHERE prob REGEXP '0\\.11|0\\.2' ORDER BY prob;

在这里插入图片描述

  1. 匹配几个字符之一
    匹配prob中.后面是1或2或3的字符
 SELECT kw, prob FROM key_words WHERE prob REGEXP '0\\.[123]';

在这里插入图片描述
在这里插入图片描述
用()也可以
匹配.后不是1或2或3的字符

SELECT kw, prob FROM key_words WHERE prob REGEXP '0\\.[^123]';

在这里插入图片描述

  1. 匹配范围
    匹配.后是1-4之间的字符
SELECT kw, prob FROM key_words WHERE prob REGEXP '0\\.[1-4
]';

在这里插入图片描述

  1. 匹配特殊字符
    为了匹配特殊字符,必须用\为前导。\-表示查找-, \.表示查找.
    包括.、 |、 []以及迄今为止使用过的其他特殊字符。
    在这里插入图片描述
    为了匹配反斜杠( \)字符本身,需要使用\\。

  2. 匹配字符类
    在这里插入图片描述

# 匹配数字
SELECT kw, prob FROM key_words WHERE prob REGEXP '[
[:alnum:]]';

在这里插入图片描述
7. 匹配多个实例
在这里插入图片描述
8. 定位符
在这里插入图片描述

https://blog.youkuaiyun.com/qq_39314932/article/details/86097506

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值