@lexbond13
Web разработчик

Как отфильтровать данные по всем полям объекта json в Postgresql?

Есть объект:
{"0": {"id": 1, "price": "45.00", "title": "Hemingway and Sons - Card Wallet Brown"}, "1":{"id": 2, "price": "88.00", "title": "Lucky dog"}}

Находится в бд Postgres в поле типа jsonb. Нужно отфильтровать записи по полю price.
Можно искать так:
SELECT * FROM product WHERE (variants -> '0' ->> 'price')::float BETWEEN 0 AND 10

Но поиск будет по одному полю, обозначенному тут как '0'. Но как пройтись по всем полям данного объекта??
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
where exists(select from jsonb_each(variants) where (value->>'price')::numeric between 0 and 10);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы