首页 > 解决方案 > 如何检查json数组是否已经包含某个键?

问题描述

假设我的 jsonb 列中有这个 json

{
  "fields": [
    {
      "name": "firstName",
    },
    {
      "name": "lastName",
    },
    ...
}

我怎么知道“名字”是否已经存在?

到目前为止我已经尝试过了

SELECT field->>'fields' 
from person where (field->'name')::jsonb ? 'firstName';

标签: sqljsonpostgresqljsonb

解决方案


使用包含运算符@>

select field->>'fields'
from person
where field->'fields' @> '[{"name": "firstName"}]'

推荐阅读