[英]How to get the multiple key value pairs from jsonb object in postgresql?
[英]PostgreSQL - Get JSONB key/value pair inside object and return it
這個運算符?|
返回一個布爾值。 它只是檢查字符串是否包含在字符串中。
SELECT ids ?| '{100085,100087,100090,100091,100093,100095,100113,
100121,100126,100211,100213,100223,100324,100326}'
FROM tableA
|ids|
{'100090':'123456789','100096':'987654321'}
這將返回 true,因為 id 100090
在 ids jsonb 列中。
問題是,有沒有辦法返回它找到的內容而不僅僅是一個布爾值。 返回它找到的匹配值,而不是 true,例如 return '123456789'
一種可能性,有點復雜,但至少可以運行並返回使用這些鍵找到的所有值。 如果你只想要一個,那么需要一個限制:
SELECT * FROM
(SELECT '{"100090":"123456789","100096":"987654321"}'::jsonb ->>
unnest('{100085,100087,100090,100091,100093,100095,100113,100121,100126,100211,100213,100223,100324,100326}'::int[])::text AS result) AS x
WHERE result IS NOT NULL;
結果:
result
-----------
123456789
(1 row)
需要子選擇,因為出於某種原因試圖將 IS NOT NULL 添加到查詢中,否則只會聲稱該列不存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.