如何解决检查数组是否有值
我正在运行此简单检查:
select * from mytable
where field_name = any(array['2']::_varchar);
field_name是_varchar
,所以它是一个数组
但是我得到这个: 错误:运算符不存在:字符变化[] =字符变化
我想念什么?
谢谢!
解决方法
=ANY
解开它的RHS并将其分别与LHS进行比较,因此它与field_name = '2'::varchar
相同。您无法将数组与标量进行比较。您想要一个不会解开参数而是将数组相互比较的运算符:
field_name @> array['2']::_varchar
或
field_name && array['2']::_varchar
或者您想将文字保留为标量,然后解开已经是数组的另一面,使其也变成标量:
'2' =ANY (field_name)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。