gpt4 book ai didi

sql - PostgreSQL : Use of ANY for multiple values

转载 作者:搜寻专家 更新时间:2023-10-30 19:58:56 24 4
gpt4 key购买 nike

我正在尝试使用 PostgreSQL 的 ANY 函数从数组整数类型列中搜索值。

我的 SQL:

SELECT
*
FROM
company_employee_contacts
WHERE
corporate_complaint_type_ids = ANY(ARRAY[1,3]::integer[])

但它给我以下错误:

ERROR: operator does not exist: integer[] = integer

谁能告诉我为什么在进行类型转换时会出现此错误?

最佳答案

因为 corporate_complaint_type_ids 不是整数,而是整数数组...你不能:

select '{2,3,4}'::int[] = ANY(ARRAY[1,3]::integer[]);
ERROR: operator does not exist: integer[] = integer
LINE 1: select '{2,3,4}'::int[] = ANY(ARRAY[1,3]::integer[]);

相反,您可以检查数组 overlap :

postgres@pond93# select '{2,3,4}'::int[] && ARRAY[1,3]::integer[];
?column?
----------
t
(1 row)

或者您可以根据 ANY(array) 检查一个数组值:

postgres@pond93# select ('{2,3,4}'::int[])[1] = ANY(ARRAY[1,3]::integer[]);
?column?
----------
f
(1 row)

关于sql - PostgreSQL : Use of ANY for multiple values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51150212/

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