我有一个标签的文本阵列列PostgreSQL表。
我有此数组中的标签。
什么是找到,如果一个或多个标签是阵列中的最佳方式是什么?
比如我想找到与标签A和C阵{A,B,C,d}将匹配而不是在{A,d,E}行,我希望能够为用户想找到尽可能多的标签。
目前我使用:
SELECT * FROM tarray WHERE ('tag1'=ANY(tags) AND 'tag4'=ANY(tags))
不过,这并不让我easyly找到超过2个标签
该包含运营商的阵列是<@
。
正测试用例
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更多功能