gpt4 book ai didi

PostgreSQL:使用 LIKE、ANY 和通配符的 Where 子句

转载 作者:行者123 更新时间:2023-11-29 11:44:52 24 4
gpt4 key购买 nike

我有一个表,其中包含一个字符串数组的字段(类型是 character varying(255)[])。

我想将给定字符串与通配符(例如 'query%')与该字段的任何元素进行比较。

此请求有效并返回预期结果:

SELECT * FROM my_table WHERE 'query' ILIKE ANY(my_field)

但是使用通配符,我没有得到任何结果:

SELECT * FROM my_table WHERE 'query%' ILIKE ANY(my_field)

我认为原因是通配符仅在 ILIKE 运算符的右侧受支持,但 ANY(my_field) 也必须在运算符之后。

有没有办法实现我想要的?

使用 PostgreSQL 9.5。

最佳答案

您必须取消嵌套数组字段:

with my_table(my_field) as (
values
(array['query medium', 'large query']),
(array['large query', 'small query'])
)
select t.*
from my_table t,
lateral unnest(my_field) elem
where elem ilike 'query%';

my_field
--------------------------------
{"query medium","large query"}
(1 row)

关于PostgreSQL:使用 LIKE、ANY 和通配符的 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40305914/

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