postgresql 是否选择与输入数组完全相交的所有行?

pepwfjgg  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(98)

考虑下表
| lang_codes text[]| lang_codes text[] |
| --| ------------ |
| {eng,fre}| {eng,fre} |
| 关于我们| {eng} |
我需要从表中选择与输入数组相交的所有行,但仅当lang_codes中的所有项都存在于输入数组中时,例如:

  • 如果输入数组包含[eng,fre,格尔],则返回所有行
  • 而[eng,格尔]不会返回第一条记录,因为它需要两个代码都出现在输入数组中。

我尝试了&&操作数,但它返回了所有行:

select * from my_table where lang_codes && ARRAY['eng','ger'];

字符串
从另一方面@>操作数,仅当数组完全匹配时返回

ac1kyiln

ac1kyiln1#

<@operator应该可以做到这一点:

select * from my_table where lang_codes <@ ARRAY['eng','ger'];

字符串
SQL小提琴

相关问题