Я хочу получить строки, в которых значение json равно '111'
'111'
id json 1 {"1":"111", "2":"222"} 2 {"1":"111", "3":"333"} 3 {"4":"444", "2":"222"} 4 {"4":"666", "2":"111"} 5 {"1":"777", "3":"888"}
Если вы не уверены в ключах, по которым нужно искать 111, вы можете просто сделать:
111
SELECT * FROM json_test WHERE json::text LIKE '%"111"%';
См. ДЕМО здесь.
демо: дб <> скрипка
SELECT * FROM table WHERE json ->> '1' = '111' or json ->> '2' = '111'
демонстрационная <> дб: скрипка
SELECT id, json FROM json_test, json_each_text(json) WHERE value = '111'
Расширение объекта json (создание таблицы с парами ключ / значение), фильтрация строк, где значение = '111'