本文作者:kris

简述MySQL 正则表达式-mysql的正则表达式

kris 2025-01-19 14:00:31 3
简述MySQL 正则表达式-mysql的正则表达式摘要: MySQL数据库在索引条件相同的情况下,正则和LIKE模糊匹配,谁的效率,更好?一般用哪个?在索引相同情况下,效率差不多。不过还要经过严格测试才能知道答案。说实话,这两个方法效率都...

MySQL数据库在索引条件相同的情况下,正则和LIKE模糊匹配,谁的效率,更好?一般用哪个?

在索引相同情况下,效率差不多。不过还要经过严格测试才能知道答案。说实话,这两个方法效率都不高,原因是使用正则或者like时,一般情况下,索引会失效。建议使用全文索引。

mysql如何截取正则表达式的内容?

mysql中的正则表达式是一种匹配,用于筛选出满足条件的记录。我们需要利用其它的函数或者手段才能截取出正则表达式中的内容。

mysql中的正则表达式

mysql中用regexp这个关键字表示正则表达式的匹配,常用的正则表达式模式,mysql都支持,和PhP或者 PERL中脚本语言比较相似。

  • ^表示匹配字符串的起始位置;

  • $表示匹配字符串的结束位置;

  • *表示匹配前面字符的零次或者多次;

  • ?表示0或者1个匹配;

  • +表示1或者多个匹配

  • {n}表示匹配n个;

  • [0-9]表示数字的0-9匹配。

select name from person where name regexp '^王' 表示匹配姓名中王姓开头的记录

截取正则表达式中的内容

截取内容一般会用到字符串截取的相差函数,mid或者substr,即截取某一部分字符串的内容做为我们想要的结果。当然对于一些简单的内容截取,left\right函数都是可以直接使用的。

比如,我们希望获取访问了某个子目录的浏览量及用户数,就可以通过regexp进行匹配,然后再进行截取。

select create_date,local_url from page_view regexp '^https://' limit 0,100

简述MySQL 正则表达式-mysql的正则表达式

我们希望统计出子目录形如member,articl下的页面访问情况,这个时候我们就可以结合字符串截取函数就可以截取出想要的结果,

select create_date,local_url,instr(local_url,'/member/') url_index, (case when (local_url regexp '^http(s)?://([\w-]+\.).*/member/.*') then mid(local_url,1,instr(local_url,'/member/')+length('/member/')-1) else null end) cat_url from page_view limit 0,100;

执行该SQL语句,我们就可以截取出子目录的数据,根据截取出来的数据,进一步就可以进行统计得到我们期望的结果。

简述MySQL 正则表达式-mysql的正则表达式

文章版权及转载声明

作者:kris本文地址:https://www.damoyx.com/p/24891.html发布于 2025-01-19 14:00:31
文章转载或复制请以超链接形式并注明出处大漠游侠网

阅读
分享