Select "WHERE IN" 使用 PostgreSQL 和 JSONB

Select "WHERE IN" with PostgreSQL and JSONB

给定 table_a 这样的:

 id | name
----+------
  1 | aaaa
  2 | bbbb
  3 | cccc

我显然可以发出以下查询:

SELECT * FROM table_a WHERE name IN ('aaaa', 'bbb');

但是 table_b 是这样的:

 id |       data
----+------------------
  1 | {"name": "aaaa"}
  2 | {"name": "bbbb"}
  3 | {"name": "cccc"}

如何发出查询"give me all the rows where the value of the key name is contained in this list of values?"

我知道我可以使用 jsonb operator @> 来检查每个组合,但不幸的是,我必须发出与我要检查的值的数量一样多的查询。有没有办法在一次查询中

更新:

我马上找到了解决方案:

select * from table_b where data #>> '{name}' IN ('aaaa', 'bbb');
SELECT * FROM table_a WHERE data->>'name' IN ('aaaa', 'bbbb')

看来这就是你想要的?