选择 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 数组包含特定元素的行的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Oracle JSON CLOB 类型的 JSON 数组中选择特定元素