{1=2,2=3}
не является допустимым JSON.
Я думаю, вы имеете в виду {"1":"2","2":"3"}
.
Вы можете использовать json_each_text
для преобразования в пару значений ключа (текст) и легко сравнивать.
SELECT *
FROM t
WHERE ( att_key, att_value ) IN (SELECT inp.key :: INT, inp.VALUE :: INT
FROM json_each_text('{"1":"2","2":"3"}') AS inp );
Демо