Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PostgreSQL 9.3中针对JSON列查询数组包含_Json_Postgresql_Postgresql 9.3 - Fatal编程技术网

在PostgreSQL 9.3中针对JSON列查询数组包含

在PostgreSQL 9.3中针对JSON列查询数组包含,json,postgresql,postgresql-9.3,Json,Postgresql,Postgresql 9.3,我正在运行PostgreSQL 9.3。我有一个名为“model”的列,类型为“json”(不是jsonb)。“模型”栏的内容类似于以下内容: { “节”:{ “颜色”:[“红色”、“蓝色”、“绿色”] } } 可以查询model->section->colors包含“蓝色”的行吗?9.3中没有json比较运算符。您可以调用函数json\u array\u elements()并将函数结果强制转换为textDistinct on: select distinct on (id) t.* from

我正在运行PostgreSQL 9.3。我有一个名为“model”的列,类型为“json”(不是jsonb)。“模型”栏的内容类似于以下内容:

{
“节”:{
“颜色”:[“红色”、“蓝色”、“绿色”]
}
}


可以查询
model->section->colors
包含“蓝色”的行吗?

9.3中没有json比较运算符。您可以调用函数
json\u array\u elements()
并将函数结果强制转换为
text
<在json数组包含重复元素的情况下使用code>Distinct on:

select distinct on (id) t.*
from my_table t,
json_array_elements(model->'section'->'colors')
where value::text = '"blue"';

这是正确的答案。我最终迁移到了9.4版。