Задать вопрос
@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'. Но как пройтись по всем полям данного объекта??
  • Вопрос задан
  • 256 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик расширенный
    14 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    Мидл Python-разработчик
    6 месяцев
    Далее
Решения вопроса 1
Melkij
@Melkij
DBA для вашего PostgreSQL?
where exists(select from jsonb_each(variants) where (value->>'price')::numeric between 0 and 10);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы