选择 json 数组包含特定元素的行

Posted

技术标签:

【中文标题】选择 json 数组包含特定元素的行【英文标题】:Select rows where json array contains specific element 【发布时间】:2021-12-20 04:29:57 【问题描述】:

我在 Oracle DB 中有一个带有 JSON 列的表。该列是整数数组:

CREATE TABLE orders (
    id NUMBER,
    products CLOB CHECK (products IS JSON)
);
INSERT INTO orders VALUES (1, '[5, 8, 12]');
INSERT INTO orders VALUES (2, '[3, 7, 19]');

例如,我想选择 products 数组包含数字 8 的行。正确的 SQL 查询是什么?

【问题讨论】:

【参考方案1】:
select *
from   orders
where  json_exists(products, '$[*]?(@ == 8)')
;

https://docs.oracle.com/en/database/oracle/oracle-database/12.2/adjsn/condition-JSON_EXISTS.html#GUID-D60A7E52-8819-4D33-AEDB-223AB7BDE60A

【讨论】:

以上是关于选择 json 数组包含特定元素的行的主要内容,如果未能解决你的问题,请参考以下文章

从 jsonb 数组包含具有特定属性的元素的表中选择

如何从 Oracle JSON CLOB 类型的 JSON 数组中选择特定元素

使用swift 3从json数组中选择特定元素

Jquery如何在数据属性数组中选择包含特定值的元素?

我有一个基于所选城市长度不同的对象数组。如何选择包含具有特定属性的对象的元素?

从 S3 读取大型 JSON 文件 (3K+) 并从数组中选择特定键