栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PostgreSQL计算子字符串在文本中出现的次数

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PostgreSQL计算子字符串在文本中出现的次数

选择的答案被证明比改版的慢得多

regexp_replace()
。创建行以及运行聚合的开销实在太高了。

最快的方法如下:

SELECT  (length(str) - length(replace(str, replacestr, '')) )::int  / length(replacestr)FROM ( VALUES  ('foobarbaz', 'ba')) AS t(str, replacestr);

在这里,我们

  1. 取字符串的长度,
    L1
  2. L1
    字符串的长度中减去所有替换项后
    L2
    得到
    L3
    的字符串长度的差。
  3. L3
    由替换的长度,以获得 事件

为了进行比较,它比使用这种方法的 速度快 大约 五倍

regexp_matches()

SELECT count(*)FROM ( VALUES  ('foobarbaz', 'ba')) AS t(str, replacestr)CROSS JOIN LATERAL regexp_matches(str, replacestr, 'g');


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/670482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号