sql - postgresql 过滤来自 bytea 列的数据
问题描述
我有一个表,我将数据保存在 bytea 类型的列中,数据实际上是一个 JSON 对象。我需要对 JSON 数据实施过滤器。
SELECT cast(job_data::TEXT as jsonb) FROM job_details where job_data ->> "organization" = "ABC";
此查询不起作用。JSON对象看起来像
{
"uid": "FdUR4SB0h7",
"Type": "Reference Data Service",
"user": "hk@ss.com",
"SubType": "Reference Data Task",
"_version": 1,
"Frequency": "Once",
"Parameters": "sdfsdfsdfds",
"organization": "ABC",
"StartDateTime": "2020-01-20T10:30:00Z"
}
解决方案
您需要对转换后的列进行断言,此外,该转换可能不一定会根据编码起作用。尝试这样的事情:
SELECT
*
FROM
job_details
WHERE
convert_from(job_data, 'UTF-8')::json ->> 'organization' = 'ABC';
推荐阅读
- java - 在 Java Lambda 布尔方法中获取错误
- cplex - 为什么获得多个具有较大相对池差距 (CPLEX) 的 MILP 解决方案需要更长的时间?
- c++ - 如何为 ComboBox 使用 QAbstractItemModel
- java - 从 IDEA 将项目共享到 GitHub:如何将所有项目添加到存储库到名为“lab1”的分支中
- python - python中的并行对象初始化
- c# - 通过restsharp上传大于2Gb的文件
- python - 如何从标准正态值生成多元正态分布?
- excel - 使用 Excel 上的 Subtotal 函数计算每个州的平均销售额
- python - 使用字典为 pandas DataFrame 中特定单元格设置值的函数
- css - CSS 样式化父 div 内的第二个嵌套 div