- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一张 table 产品
product_id | desciption
============================================================
322919 | text {add}185{/add} text
322920 | text {add}184{/add} text {add}185{/add} text
322921 | text {add}185{/add} text {add}187{/add} text
SELECT product_id, desciption
FROM product
WHERE LOWER(desciption) like '%{add}185{/add}%'
> Time: 340,159s
SELECT product_id, regexp_matches (desciption, '(\{add\}\d+\{\/add\})', 'g')
FROM product
product_id | regexp_matches
================================================================================
322919 | {"{add}185{/add}"}
322920 | {"{add}184{/add}"}
322920 | {"{add}185{/add}"}
322921 | {"{add}185{/add}"}
322921 | {"{add}187{/add}"}
最佳答案
最简单的解决方案就是构建一个 pg_trgm index .
create extension pg_trgm;
create index on product using gin (description gin_trgm_ops);
create function extract_tokens(text) returns text[] immutable language sql as $$
select array_agg(regexp_matches[1]) from
regexp_matches ($1, '\{add\}(\d+)\{\/add\}+','g')
$$;
create index on product using gin (extract_tokens(description))
select * from product where extract_tokens(description) @> ARRAY['185'];
关于sql - 如何在 postgresql 中为 regexp_matches 创建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60409317/
我要提取, 002267b4-ad06-11e4-89ca-59f94b49bbc0 上面的字符串来自另一个字符串。我试过的是, select regexp_matches('class 1 type
这是我第一次使用 regexp_matches,我发现使用它只会返回匹配 SELECT 子句中所有 regexp_matches 的行。 例如: SELECT parameters, regexp_m
给定一个字符串,我想提取所有匹配正则表达式(例如电子邮件)的表达式作为数组。这是我的实际代码,使用 PostgreSQL 9.4 : select regexp_matches('user1@gml.
有没有比 regexp_matches 更好的方法来修剪 {""} : trim(trailing '"}' from trim(leading '{"' from regexp_matches(no
我使用 Postgres regexp_matches 函数来提取数字。 我使用的正则表达式是 4([\s\-\/\.]*?0){3}([\s\-\/\.]*?[12]){1}([\s\-\/\.]*
我有一个 name 列,如下所示: '1234567 - 7654321 - some - more - text' 我需要得到一个字符串"7654321"。我坚持以下几点: SELECT regex
我有一个正则表达式可以在文本字符串中查找特定类型的数字。 select regexp_matches ('+(+number: 921163 +number:(814541)) +(number: 7
我有一个结构如下的表... the_geom 数据 geom1 data1+3000||data2+1000||data3+222 geom2 data1+500||data2+900||
我正在尝试像 Postgres 9.4 那样拆分表达式:“一些文本 123_good_345 和其他文本 123_some_invalid 和 222_work ok_333 停止。” 使用模式:(\
我正在尝试从 123A America、234B Britania 等名称中提取整数和字符。我只想要号码和附加的字母(即 123A)。我正在使用 regexp_matches(name, '(\d+)
所以,如果有这个字符串 aassdd 这段代码: regexp_matches('aassdd', 'a', 'g') 返回 2 个不同的行。 是否可以将所有匹配项检索为一行?例如 array 类型为
有人可以解释 regexp_matches() 的这种奇怪行为吗?在 PostgreSQL 9.2.4 中(在 9.1.9 中结果相同): db=# SELECT regexp_matches('te
过去几天我一直在尝试计算以下内容。 表1:同义词 Id Synonym code ------------------------------ 1 Car
给定一个文件名: xxxx/2013-02/csv/Sales_1302040000-1302050000.zip 有人可以解释为什么 regexp_matches 在此函数中返回 null 吗: C
我正在尝试清理一个包含各种条目的非常困惑的 varchar 列的表: VA Lidar OR InPort Metadata 我想通过仅保留 html 链接来更新该列,如果有多个链接,则用逗号分隔它们
为什么以下代码只返回空括号 - {''}。如何让它返回匹配的字符串? SELECT regexp_matches('ATGCATGCATGCCAACAACAACCTGTCAAGTGAGT','(?=.
我想知道为什么 SELECT *, regexp_matches(A, 'pattern') FROM table 是否只返回 A 具有模式 pattern 的行,即使我没有 WHERE 子句? 如果
我尝试使用 Postgres regexp_matches 函数从字符串中提取主题标签...以下示例仅返回一个匹配项 - 如何提取两个主题标签? regexp_matches("Hello #worl
在 Google BigQuery 中,我想检查“确认”或“确认”: REGEXP_CONTAINS(h.page.PagePath, r'Confirm') or REGEXP_CONTAINS(h
我有一张 table 产品 product_id | desciption ==========================
我是一名优秀的程序员,十分优秀!