{'score': {'team1': 1, 'team2': 1}}
Запрос:
SELECT matches.match_data ->> 'score' FROM matches WHERE matches.match_id = '23124521'
Возвращает null всегда, если я пытаюсь дойти до score или до team1, везде возвращается null.
PS. Если сделать select match_data, то возвращается полноценный полный json (не null), как только лезу внутрь - всегда null
Для начала я бы попробовал matches.match_data->'score'
аналогично, если ответ в формате json (->) возвращает null, и если текст (-») тоже Null
postgres=# select ('{"score": {"team1": 1, "team2": 1}}'::jsonb)#>'{score, team1}'; ?column? ---------- 1 (1 строка)
Так у меня тоже норм селектит, а из таблицы не хочет. При чём, если селектить просто всё поле, то возвращается, как только начинаю залазить внутрь, возвращает null, где может быть проблема?🥲
Как будто вбиваю неправильно название поля, но я его уже просто втупую скопировал
postgres=# create table foo( info jsonb ); CREATE TABLE postgres=# insert into foo( info ) values ('{"score": {"team1": 1, "team2": 1}}'::jsonb); INSERT 0 1 postgres=# select info ->'score' from foo; ?column? -------------------------- {"team1": 1, "team2": 1} (1 строка) postgres=# select info #>'{score, team1}' from foo; ?column? ---------- 1 (1 строка)
Похоже у Вас не валидный json (одинарный кавычки вместо двойных) https://sqlize.online/sql/psql13/b422d55594ce875239e562ce99a19eba/
Обсуждают сегодня