是否可以确定是否ARRAY
列包含来自另一个数组的重叠值LIKE
clause?
The &&
运算符有效,但字符串必须完全匹配
q = """select * from articles where keywords && '{"mortgage brokers"}';""" // Exact match
是否可以过滤行包含值的关键字substring
,不是完整的字符串?就像是:
q = """select * from articles where keywords && LIKE '{"mortgage"}';""" // HOW TO FILTER keywords containing value with substring
LIKE
对字符串进行操作。要检查两个数组是否重叠,可以使用&&
.
From 数组函数和运算符文档:
&&
:重叠(有共同元素)
SELECT ARRAY[1,4,3] && ARRAY[2,1] arrays_overlap;
| arrays_overlap |
| -------------- |
| true |
查看数组中是否存在以下值LIKE
对于来自另一个数组的数组,一种解决方案是取消两个数组的嵌套并将结果与LIKE
:
SELECT EXISTS (
SELECT 1
FROM
unnest(ARRAY['abc', 'def' ]) my_array(x)
INNER JOIN unnest (ARRAY['a', 'z' ]) my_keywords(x)
ON my_array.x LIKE '%' || my_keywords.x || '%'
) arrays_have_similar_elements;
| arrays_have_similar_elements |
| ---------------------------- |
| true |
SELECT EXISTS (
SELECT 1
FROM
unnest(ARRAY['abc', 'def' ]) my_array(x)
INNER JOIN unnest (ARRAY['y', 'z' ]) my_keywords(x)
ON my_array.x LIKE '%' || my_keywords.x || '%'
) arrays_have_similar_elements;
| arrays_have_similar_elements |
| ---------------------------- |
| false |
DB Fiddle 上的演示
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)