gpt4 book ai didi

sql - Postgres 选择非正则表达式查询

转载 作者:行者123 更新时间:2023-11-29 14:09:18 26 4
gpt4 key购买 nike

我们想做以下事情:

SELECT * FROM table WHERE char_length(text) >= 15 AND char_length(text) <= 100

但是,我们希望它只返回匹配此查询但不带主题标签的“文本”列。那是:如果 text = 'hello how are you' 将匹配但text = 'hello #how #are you' 将不匹配(因为我们要过滤掉主题标签并且 char_length('hello you') 太短)。

最佳答案

您可以从文本中删除主题标签并检查剩余的字符串是否在您想要的长度范围内:

with t as (select 'this is some text' as txt union all 
select 'this is #hashed text - loong' union all
select 'too short #despite #many #hashtags')
select * from t
where length(regexp_replace(txt, '#[a-z]+ *', '', 'g')) between 15 and 100

你可能想用正则表达式 #[a-z]+ * 来识别你的标签。请注意,'g' 使 regexp_replace 替换正则表达式的 所有 出现,而​​不仅仅是第一个,参见 PostgreSQL docs .

关于sql - Postgres 选择非正则表达式查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48729907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com