[英]Unable to search jsonb field in postgres
我在postgres版本10中有一個名為Payment的jsonb字段,其值是:
[{"bank": "SBI", "amount": "100", "ref_no": "123", "payment_mode": "1"}]
。
當我嘗試搜索payment->'payment_mode'='1'
。 它顯示空行。
以下是查詢
SELECT * FROM bill WHERE payment->>'payment_mode'='1'
但是當嘗試此查詢時,它會顯示確切的結果
SELECT
*
FROM
json_array_elements(
'[{"bank": "SBI", "amount": "100", "ref_no": "123", "payment_mode": "1"}]'
) AS elem
WHERE
elem->>'payment_mode' = '1';
是否有任何解決方案可用於搜索jsonb字段中的值以獲取結果
`{"bank": "SBI", "amount": "100", "ref_no": "123", "payment_mode": "1"}`.
如果我正確理解,則需要以下內容:
select bill.*, e.*
from bill
join lateral jsonb_array_elements(payment) e(v)
on true
where v->>'payment_mode'='1';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.