我正在尝试测试json
PostgreSQL 9.3 中的类型。
我有一个json
名为data
的表中的列reports
。JSON 看起来像这样:
{
"objects": [
{"src":"foo.png"},
{"src":"bar.png"}
],
"background":"background.png"
}
我想在表中查询与“objects”数组中的“src”值匹配的所有报告。例如,是否可以在数据库中查询所有匹配的报告'src' = 'foo.png'
?我成功编写了一个可以匹配的查询"background"
:
SELECT data AS data FROM reports where data->>'background' = 'background.png'
但由于"objects"
有一系列值,我似乎无法写出有效的东西。是否可以在数据库中查询所有匹配的报告'src' = 'foo.png'
?我已经查看了这些来源,但仍然无法得到它:
- http://www.postgresql.org/docs/9.3/static/functions-json.html
- 如何使用新的 PostgreSQL JSON 数据类型中的字段进行查询?
- http://michael.otacoo.com/postgresql-2/postgres-9-3-feature-highlight-json-operators/
我也尝试过这样的事情,但无济于事:
SELECT json_array_elements(data->'objects') AS data from reports
WHERE data->>'src' = 'foo.png';
我不是 SQL 专家,所以我不知道我做错了什么。