根据Postgres中的整数值查询json列

时间:2018-04-27 10:39:38

标签: json postgresql

我正在使用postgres v9.3

我有一个名为temp的表,其中包含all_data列。该值如下所示: -

{"Accountid" : "1364", "Personalid" : "4629-87c3-04e6a7a60208", "quote_number" : "QWQA62364384"}

现在,我想通过accountid = 1364查询all_data列。

请问你能说出什么是查询?

1 个答案:

答案 0 :(得分:0)

使用->> operator

select *
from temp
where all_data ->> 'Accountid' = '1364';

9.3的在线示例:http://sqlfiddle.com/#!15/55981/1

但是,如果JSON包含数组而不是JSON对象,则上述操作无效。例如。像'[1,2]'::json这样的值会导致该查询失败。

使用9.4及更高版本,您可以使用json_typeof()检查,但是您很快就会看到不受支持的版本,我能想到的唯一解决方法是将列转换为文本并排除那些以{{1}开头的列}

[

9.3的在线示例:http://sqlfiddle.com/#!15/d01f43/3