最佳的方式发现阵列中的多个值

问题描述 投票:2回答:1

我有一个标签的文本阵列列PostgreSQL表。

我有此数组中的标签。

什么是找到,如果一个或多个标签是阵列中的最佳方式是什么?

比如我想找到与标签A和C阵{A,B,C,d}将匹配而不是在{A,d,E}行,我希望能够为用户想找到尽可能多的标签。

目前我使用:

SELECT * FROM tarray WHERE ('tag1'=ANY(tags) AND 'tag4'=ANY(tags))

不过,这并不让我easyly找到超过2个标签

postgresql
1个回答
1
投票

该包含运营商的阵列是<@

正测试用例

   postgresdb=> select ARRAY['tag1', 'tag4'] <@ ARRAY['tag1', 'tag2', 'tag4'] as result;
    -[ RECORD 1 ]
    result | t

负面测试用例

postgresdb=> select ARRAY['tag1', 'tag4'] <@ ARRAY['tag1', 'tag2'] as result;
-[ RECORD 1 ]
result | f

为了您的使用情况,查询会

SELECT * FROM tarray WHERE ARRAY['tag1', 'tag4'] <@ tags

请参阅Postgres的docs更多功能

© www.soinside.com 2019 - 2024. All rights reserved.