Postgres jsonb如何检查某些值不为空
Postgres jsonb how to check some values is not empty
我有一个jsonb值
{"mts": "375", "tele2": "", "beeline": "56", "megafon": "377"}
a 如何检查 mts 和 megafon 是否为空
我的查询是
select *
from test
where settings->>'megafon' <> ''
or settings->>'mts' <> ''
or settings->>'beeline' <> ''
但是这么长的查询,怎么写短的条件?
SELECT * FROM
jsonb_each_text('{"mts": "", "tele2": "", "beeline": "56", "megafon": "377"}'::jsonb)
WHERE value != ''
json_each_text()
将每个 json 元素作为文本元素扩展为一行。结果是 table,列 key
和 value
.
现在您可以过滤每个内容的 value
列。
https://www.postgresql.org/docs/current/static/functions-json.html
我有一个jsonb值
{"mts": "375", "tele2": "", "beeline": "56", "megafon": "377"}
a 如何检查 mts 和 megafon 是否为空
我的查询是
select *
from test
where settings->>'megafon' <> ''
or settings->>'mts' <> ''
or settings->>'beeline' <> ''
但是这么长的查询,怎么写短的条件?
SELECT * FROM
jsonb_each_text('{"mts": "", "tele2": "", "beeline": "56", "megafon": "377"}'::jsonb)
WHERE value != ''
json_each_text()
将每个 json 元素作为文本元素扩展为一行。结果是 table,列 key
和 value
.
现在您可以过滤每个内容的 value
列。
https://www.postgresql.org/docs/current/static/functions-json.html