• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hsuyeung
V2EX  ›  程序员

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

  •  
  •   hsuyeung · Aug 11, 2022 · 3602 views
    This topic created in 1377 days ago, the information mentioned may be changed or developed.

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

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

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

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