V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hsuyeung
V2EX  ›  程序员

大家平时写 SQL 会用正则表达式吗?

  •  
  •   hsuyeung · 2022-08-11 22:50:26 +08:00 · 2705 次点击
    这是一个创建于 834 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今晚看书回顾 MySQL 的基础知识,看到正则表达式一块儿,才发现自己从来没有使用过正则表达式,不论是个人项目还是公司项目,感觉没怎么见过使用正则表达式来查询数据的。

    搜索引擎搜了一下,使用正则似乎比 LIKE 查询是要快一点点的,不过自己未验证,不敢笃定。

    不知各位平时有过使用经验吗?

    12 条回复    2022-08-12 19:23:19 +08:00
    hsuyeung
        1
    hsuyeung  
    OP
       2022-08-11 23:14:02 +08:00 via iPhone
    刚刚又看到了 SOUNDEX() 函数,以前的确没注意到过,感觉挺有趣。
    Jface
        2
    Jface  
       2022-08-11 23:51:54 +08:00 via iPhone
    有的,很多业务需求匹配需要正则来匹配,基本就是关键词匹配,条件判断等等
    moen
        3
    moen  
       2022-08-12 00:03:21 +08:00
    会用,因为平时习惯用正则,相对地写起来更舒服。而 LIKE 匹配和正则匹配本质上都是个状态机,相同的匹配逻辑下一般不存在什么性能差异
    saberlong
        4
    saberlong  
       2022-08-12 08:06:28 +08:00 via Android
    很少用,要用也是带其它条件字段将数据缩减到足够小的范围。正则走不了索引。而通常做查询时,先考虑走什么索引。
    shakoon
        5
    shakoon  
       2022-08-12 08:20:29 +08:00
    偶尔会用,因为有些条件用 sql 实在写不出来,或者强行写需要嵌套很多分支调用很多函数,性价比太低
    xaplux
        6
    xaplux  
       2022-08-12 08:41:11 +08:00
    不建议用,这玩意不用想也知道性能不咋地,如果用到了可以考虑是不是需要上 ES
    xboxv
        7
    xboxv  
       2022-08-12 08:47:50 +08:00 via Android
    字段套了函数没法使用索引
    siweipancc
        8
    siweipancc  
       2022-08-12 08:58:41 +08:00 via iPhone
    然后触发扫表……
    L0L
        9
    L0L  
       2022-08-12 09:35:54 +08:00
    非特殊场景别用,徒增数据库压力,数据库就应该做些简单的事情。
    kinXdle
        10
    kinXdle  
       2022-08-12 10:05:59 +08:00
    不会,like 效率高多了
    stevenbipt
        11
    stevenbipt  
       2022-08-12 17:50:25 +08:00
    like 有的场景能用上索引,但是正则在文档上说了一定走不上索引,触发扫表的一般都要慎重考虑
    BunnyEatingGrass
        12
    BunnyEatingGrass  
       2022-08-12 19:23:19 +08:00
    有需求就会用的,还有 like 的特殊用法,不过现在基本都不写 SQL 了,SQL 主要用在做报表部分吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2769 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:19 · PVG 10:19 · LAX 18:19 · JFK 21:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.