提问人:Matias 提问时间:8/15/2020 更新时间:8/15/2020 访问量:598
检查数组是否具有值
Check if array has value
问:
我正在运行这个简单的检查:
select * from mytable
where field_name = any(array['2']::_varchar);
field_name所以它是一个数组_varchar
但我得到这个: 错误:运算符不存在:字符变动[] = 字符变动
我错过了什么?
谢谢!
答:
3赞
jjanes
8/15/2020
#1
=ANY
将其展开 RHS 并将它们单独与 LHS 进行比较,因此它与 .你不能像这样将数组与标量进行比较。您需要一个不解开参数但将数组相互比较的运算符:field_name = '2'::varchar
field_name @> array['2']::_varchar
或
field_name && array['2']::_varchar
或者你想把文字保留为标量,然后解开已经是数组的另一端,这样它也变成了一个标量:
'2' =ANY (field_name)
评论
where '2' = any(field_name)