sql - 如何检查json数组是否已经包含某个键?
问题描述
假设我的 jsonb 列中有这个 json
{
"fields": [
{
"name": "firstName",
},
{
"name": "lastName",
},
...
}
我怎么知道“名字”是否已经存在?
到目前为止我已经尝试过了
SELECT field->>'fields'
from person where (field->'name')::jsonb ? 'firstName';
解决方案
使用包含运算符@>
:
select field->>'fields'
from person
where field->'fields' @> '[{"name": "firstName"}]'
推荐阅读
- android - com.google.android.gms:play-services-auth:16.0.1 不包含 GoogleSignInOptions 类
- mysql - 计算产品生命周期中的天数,不包括夏季
- mysql - Nodejs 异步/等待 MySQL 查询
- python - 无法减去两个日期时间列
- javascript - react-native 文件上传到适用于 iOS 但不适用于 Android 的服务器
- android - 我对 DrawerLayout 有一些问题
- reactjs - React 导入多个函数
- chart.js - Chart.js - 删除 Y 轴上的零和步数
- python-3.x - 修改大型数据集时出现 Python3 内存错误
- excel - 获取网页中的 td 项目