繁体   English   中英

使用 PostgreSQL,我如何使用数组中的项目获取第一列的值?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM