今晚看书回顾 MySQL 的基础知识,看到正则表达式一块儿,才发现自己从来没有使用过正则表达式,不论是个人项目还是公司项目,感觉没怎么见过使用正则表达式来查询数据的。
搜索引擎搜了一下,使用正则似乎比 LIKE 查询是要快一点点的,不过自己未验证,不敢笃定。
不知各位平时有过使用经验吗?
![]() |
1
hsuyeung OP 刚刚又看到了 SOUNDEX() 函数,以前的确没注意到过,感觉挺有趣。
|
![]() |
2
Jface 228 天前 via iPhone
有的,很多业务需求匹配需要正则来匹配,基本就是关键词匹配,条件判断等等
|
3
moen 228 天前
会用,因为平时习惯用正则,相对地写起来更舒服。而 LIKE 匹配和正则匹配本质上都是个状态机,相同的匹配逻辑下一般不存在什么性能差异
|
4
saberlong 228 天前 via Android
很少用,要用也是带其它条件字段将数据缩减到足够小的范围。正则走不了索引。而通常做查询时,先考虑走什么索引。
|
![]() |
5
shakoon 228 天前
偶尔会用,因为有些条件用 sql 实在写不出来,或者强行写需要嵌套很多分支调用很多函数,性价比太低
|
![]() |
6
xaplux 228 天前
不建议用,这玩意不用想也知道性能不咋地,如果用到了可以考虑是不是需要上 ES
|
![]() |
7
xboxv 228 天前 via Android
字段套了函数没法使用索引
|
![]() |
8
siweipancc 228 天前 via iPhone
然后触发扫表……
|
![]() |
9
L0L 228 天前
非特殊场景别用,徒增数据库压力,数据库就应该做些简单的事情。
|
10
kinXdle 228 天前
不会,like 效率高多了
|
![]() |
11
stevenbipt 227 天前
like 有的场景能用上索引,但是正则在文档上说了一定走不上索引,触发扫表的一般都要慎重考虑
|
![]() |
12
BunnyEatingGrass 227 天前
有需求就会用的,还有 like 的特殊用法,不过现在基本都不写 SQL 了,SQL 主要用在做报表部分吧?
|