Невозможно найти поле jsonb в postgres - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть поле jsonb с именем payment в postgres версии 10 со значением:

[{"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"}`.

1 Ответ

0 голосов
/ 21 сентября 2018

Если я правильно понимаю, вам нужно что-то вроде этого:

select bill.*, e.*
from bill 
join lateral jsonb_array_elements(payment) e(v)
on true
where v->>'payment_mode'='1';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...