【发布时间】:2019-11-26 21:03:09
【问题描述】:
我们都知道在 SQL 中,我们可以通过这样的查询来查询一个列(比如说,列“breeds”)来查找某个单词,例如“dog”:
select breeds
from myStackOverflowDBTable
where breeds = 'dog'
但是,假设我有更多的列和更多的数据,比如数百万条记录,我不想找到一个词,而是最常见的关键字模式或通配符表达式,这样的查询:
SELECT *
FROM myStackOverflowDBTable
WHERE address LIKE '%alb%'"
有没有一种有效的方法可以使用 SQL 在列中找到这些“模式”?我需要找到最常见的子字符串,根据上面的查询,说通配符字符串“alb”出现在“位置”列中,其中包含奥尔巴尼、阿尔伯克基、阿拉巴马州等词,显然是直接查询这些词会产生 0 个结果,但查询该通配符关键字模式会产生很多结果,但是 我想为给定的列找到最重复或最频繁的通配符/关键字模式/正则表达式/子字符串(但是你想定义它) - 有没有一种简单的方法可以做到这一点,而无需查询一百万个测试查询并手动进行???
【问题讨论】:
-
您有指定的模式列表吗?或者您想通过在列中找到的值来计算模式?
标签: sql postgresql design-patterns substring