在postgres数据库中,设置是ruby on rails。该表称为line_sources
,JSON列称为names
。我想返回names
列包含名为away_names
的键的所有行。我正在尝试这个,但他们失败了:
LineSource.where("names -> 'away_names'")
和
LineSource.where("names ->> 'away_names' = '%'")
答案 0 :(得分:10)
试试这个:
where("(names->'away_names') is not null")
答案 1 :(得分:2)
您可以使用#>
在该路径上获取JSON对象。
where("(names #>'{away_names}') is not null")
查询JSON对象的基本键运算符:
#>
:获取该路径的JSON对象->>
:以文本{obj, n}
:获取该对象中的第n个项目