thetable
表中有一个名为 jsonb_array
的字段, 类型是 jsonb[]
.
该字段有以下数据:
[{"a": 1}]
[{"a": 2}]
[{"b": 1}]
[{"b": 2}]
我想要把
[{"b": 1}]
[{"b": 2}]
取出来, 使用 SELECT * FROM thetable WHERE ANY (jsonb_array) ? 'b';
报错.
因为 ANY() 要求必须写在 operator 的右边. 可是 jsonb 的 ?
操作符不像 @> / <@
一样有可以互换方向的, ?
要求筛选的内容必须写在其左边. 这可如何是好?
1
iugo OP 没有人回答更好的办法...
看了官方文档, 建议使用 `generate_subscripts()` 完成. https://www.postgresql.org/docs/9.6/static/arrays.html |