Postgres:检查数组字段是否包含值?

我确信这是一个重复的问题,因为答案就在某个地方,但我在谷歌搜索了10分钟后还没有找到答案,所以我呼吁编辑们不要关闭它,因为它可能对其他人有用

我用的是Postgres9.5。这是我的桌子:

列│           类型│                                修饰语
─────────────────────────┼───────────────────────────┼─────────────────────────────────────────────────────────────────────────
身份证件│ 整数│ 非空默认nextval('mytable_id_seq'::regclass)
pmid│ 字符变化(200)│
酒吧类型│ 字符变化(2000)[]│ 非空

我想在pub\u types中找到所有带有“Journal”的行

我已经找到了文档并用谷歌搜索了一下,这就是我尝试过的:

从发布类型中的mytable中选择*,其中(“日记账”);
从mytable中选择*,其中pub_类型中的“日记账”;
从mytable中选择*,其中pub_types=ANY(“日记账”);
从pub_在其中键入的mytable(“Journal”)中选择*;
从发布类型包含“日志”的mytable中选择*;

我扫描了postgres array文档,但看不到如何运行查询的简单示例,StackOverflow问题似乎都基于更复杂的示例

这应该起作用:

从mytable中选择*,其中“日记账”=ANY(发布类型);

i、 e.语法为<价值>=任何(<数组>)。还要注意,postresql中的字符串文字是用单引号编写的

发表评论