sql - 如何选择 JSON 字段中具有特定键的所有行?
问题描述
我想选择表中的所有行,其中我的“object_details”JSON 字段包含以下键之一:“subject”、“Subject”、“SUBJECT”。
使用以下示例行:
datetime | object_details
---------------------+------------------------------------------------------------
2019-07-21T00:01:34Z | {"Sender": "bob@example.com", "Subject": "First email!"}
2019-07-23T09:30:01Z | {"Sender": "carol@example.com", "subject": "Second email!"}
2019-07-27T22:23:15Z | {"Sender": "dave@example.com", "protocol": "SMTP"}
我期望结果只提供这些行:
datetime | object_details
---------------------+------------------------------------------------------------
2019-07-21T00:01:34Z | {"Sender": "bob@example.com", "Subject": "First email!"}
2019-07-23T09:30:01Z | {"Sender": "carol@example.com", "subject": "Second email!"}
解决方案
您可以使用 exists 运算符,该运算符?|
将键数组作为其输入:
select *
from the_table
where object_details ?| array['subject', 'Subject', 'SUBJECT'];
推荐阅读
- tensorflow - TensorFlow 未编译为使用 AVX 5200
- php - 如何在 PHP 中取消对关联数组的排序?
- mysql - 从mysql字符串回显特殊字符不起作用
- javascript - Typescript 使用 D3.js 进行类型转换
- algorithm - 这个算法的递归关系是什么?
- jquery - 尝试使用 AJAX 编辑 Laravel 中的模态数据的持续问题
- ssl - 错误交钥匙 linux confconsole dehydrated .well-known/acme-challenge 404 NOT FOUND
- javascript - 如何使用 JavaScript 数组和 getDate 显示今天的日期?
- android - 线程休眠进入 Schedulers.io - RxJava
- c# - 如何将派生类中的变量获取到继承类中