簡體   English   中英

Postgres jsonb如何檢查一些值不為空

[英]Postgres jsonb how to check some values is not empty

我有一個jsonb值

{"mts": "375", "tele2": "", "beeline": "56", "megafon": "377"}

如何檢查例如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元素作為文本元素擴展為一行。 結果是一個包含列keyvalue的表。

現在,您可以為每個內容過濾value列。

https://www.postgresql.org/docs/current/static/functions-json.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM