我正在使用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'
给了我:
这让我感到困惑。肯定postgresql 9.4有?运营商对吗?发生了什么事?错误:运算符不存在:json?未知
请有人帮助我。
提前致谢
答案 0 :(得分:0)
运营商?
适用于jsonb
,因此您的查询应为:
select * from test_table where meta_data::jsonb ? 'oxford';
请注意,查询将找不到任何行,因为值'oxford'
位于嵌套对象中。