PostgresのJSONB列の任意のキーで特定の値を検索できますか? In the documentation私は例を見ることができません。 JSONB
列でPostgresとjsonb - 任意のキーで値を検索
値の例:
{
a: 1,
b: 2,
c: 3
}
は、私はどこにでも値として1
を持つすべてのレコードを検索します。注:現時点では、a, b, c
以外のキーが存在しない可能性があります。 jsonb_each_text
の
PostgresのJSONB列の任意のキーで特定の値を検索できますか? In the documentation私は例を見ることができません。 JSONB
列でPostgresとjsonb - 任意のキーで値を検索
値の例:
{
a: 1,
b: 2,
c: 3
}
は、私はどこにでも値として1
を持つすべてのレコードを検索します。注:現時点では、a, b, c
以外のキーが存在しない可能性があります。 jsonb_each_text
の
use値、McNetsの前のサンプルに基づいて、試料,:
t=# select * from json_test join jsonb_each_text(json_test.data) e on true
where e.value = '1';
id | data | key | value
----+--------------------------------------+-----+-------
1 | {"a": 1} | a | 1
3 | {"a": 1, "b": {"c": "d", "e": true}} | a | 1
(2 rows)
使用json_each_text()
:
with my_data(id, jdata) as (
values
(1, '{ "a": 1, "b": 2, "c": 3}'::json),
(2, '{ "j": 4, "k": 5, "l": 6}'::json),
(3, '{ "x": 1, "y": 2, "z": 3}'::json)
)
select id, jdata
from my_data,
lateral json_each_text(jdata)
where value::int = 1
id | jdata
----+---------------------------
1 | { "a": 1, "b": 2, "c": 3}
3 | { "x": 1, "y": 2, "z": 3}
(2 rows)
トップレベル?どこでも深い? –
jsonbテキストの例を投稿できますか? – McNets
@VaoTsunトップレベル – pmichna