[英]Select query for jsonb column. Alternative for 'like'
我有一個帶有 jsonb jsonb_data
列的 postrgresql 表:
| jsonb_data |
| --------------------------------------------------- |
| [ {"a": {"aa": "", "ab": 0}, "b": null, "c": ""} ] |
| [ {"a": {"aa": ""}, "b": {"ba": "", "bb": 0} ] |
| [ "c": {"ca": 1} ] |
| [ "b": {"bb": 0} ] |
如何選擇存在“b”的所有行? 此查詢必須返回這樣的行:
| jsonb_data |
| --------------------------------------------------- |
| [ {"a": {"aa": "", "ab": 0}, "b": null, "c": ""} ] |
| [ {"a": {"aa": ""}, "b": {"ba": "", "bb": 0} ] |
| [ "b": {"bb": 0} ] |
CREATE temp TABLE test_like (
data jsonb
);
INSERT INTO test_like
VALUES ('[{"a": {"aa": "", "ab": 0}}, {"b": null, "c": ""} ] '),
('[ {"a": {"aa": ""}}, {"b": {"ba": "", "bb": 0}}]'),
('[ {"c": {"ca": 1}} ]'),
('[ {"b": {"bb": 0}} ]');
WITH cte AS (
SELECT
data,
jsonb_path_exists(data, '$[*].b')
FROM
test_like
)
SELECT
data
FROM
cte
WHERE
jsonb_path_exists;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.