我正在使用postgres v9.3
我有一个名为temp的表,其中包含all_data列。该值如下所示: -
{"Accountid" : "1364", "Personalid" : "4629-87c3-04e6a7a60208", "quote_number" : "QWQA62364384"}
现在,我想通过accountid = 1364查询all_data列。
请问你能说出什么是查询?
答案 0 :(得分:0)
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