postgresql Jsonb?不管用

时间:2015-11-19 10:28:20

标签: sql database postgresql postgresql-9.4 jsonb

我正在使用postgres 9.4,我有一个表test_table,其定义是:

id (primary key) integer, meta_data json, version integer

表格数据如下:

1;"{"id":99,"file_name":"test.pdf"}";0
2;"{"id":101,"nest1":{"nest_name_1":"oxford"},"file_name":"test2.pdf"}";0

我想找到包含关键字oxford的所有主键。所以预期的结果是2.

我仍在尝试寻找解决方案,我正在尝试类似的事情:

select * from test_table where meta_data ? 'oxford'

给了我:

  

错误:运算符不存在:json?未知

这让我感到困惑。肯定postgresql 9.4有?运营商对吗?发生了什么事?

请有人帮助我。

提前致谢

1 个答案:

答案 0 :(得分:0)

运营商?适用于jsonb,因此您的查询应为:

select * from test_table where meta_data::jsonb ? 'oxford';

请注意,查询将找不到任何行,因为值'oxford'位于嵌套对象中。