在PostgreSQL 9.3中针对JSON列查询数组包含
我正在运行PostgreSQL 9.3。我有一个名为“model”的列,类型为“json”(不是jsonb)。“模型”栏的内容类似于以下内容:在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
{
“节”:{
“颜色”:[“红色”、“蓝色”、“绿色”]
}
}
可以查询
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版。