gpt4 book ai didi

sql - Postgresql 使用 like 选择数组重叠的地方

转载 作者:行者123 更新时间:2023-11-29 12:39:33 25 4
gpt4 key购买 nike

是否可以使用 LIKE 子句确定 ARRAY 列是否包含来自另一个数组的重叠值?

&& 运算符有效,但字符串必须完全匹配

 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 对字符串进行操作。要检查两个数组是否重叠,可以使用&&

来自 the Array Functions and Operators documentation :

&& : overlap (have elements in common)

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 |

Demo on DB Fiddle

关于sql - Postgresql 使用 like 选择数组重叠的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57947384/

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