For example my table is :
CREATE TABLE mytable (
    id bigint NOT NULL,
    foo jsonb
);
and it has some values :
id   | foo
-----+-------
 1   | "{'a':false,'b':true}"
 2   | "{'a':true,'b':false}"
 3   | NULL
I want to know how to check if value of a key is true , and which operator should I use?
I want something like this that can check the value :
SELECT 1 
FROM mytable
WHERE
id=2
AND
foo['a'] is true
;
                The syntax foo['a'] is invalid in Postgres.
If you want to access the value of a key, you need to use the ->> operator as documented in the manual 
select *
from mytable
where id = 2
and foo ->> 'a' = 'true';
                        SELECT 1
FROM mytable
Where
id=2
AND
(foo ->> 'a')::boolean is true;
;
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With