[英]With PostgreSQL, how would I get the value of column one with an item in an array?
我有一个“Inventory”表,有两列:id(bigint,主键)和cards(数组)。
假设我的卡片栏是: ARRAY['IZMI', 'IZCH', 'IZHI']
我将如何获取数组中只有一项的 id,例如'IZMI'
?
我的查询是什么?
有几种选择:
一种是使用ANY
运算符:
select *
from inventory
where 'IZMI' = any(cards);
另一个是包含运算符@>
select *
from inventory
where cards @> array['IZMI'];
如果您需要搜索多个匹配项(所有匹配项都必须包含在cards
中),第二个选项很有用。所以这将是一个AND
类型比较。
最后是重叠运算符&&
select *
from inventory
where cards && array['IZMI'];
与包含运算符相反,如果至少一个元素匹配,则重叠运算符为真。 因此,如果您想要OR
类型比较,这很有用。
更多细节可以在手册中找到
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.