Мне нужно обновить данные в избранном столбце:
CREATE TABLE IF NOT EXISTS client
(
id text UNIQUE NOT NULL
CONSTRAINT crm_id_pkey PRIMARY KEY,
favorites jsonb default '{}'
);
значения выглядят так:
INSERT INTO client (id, favorites)
VALUES ('123',
'{
"111111": "2018-08-06 11:07:05.710000",
"222222": "2019-08-06 11:07:05.710000",
"333333": "2019-06-06 11:07:05.710000"
}');
Я нахожу очень полезную страницу на github, есть несколько сценариев sql для слияния или обновления с учетом двух jsons. если вы хотите, вы можете проверить эту ссылку !
я пытаюсь сделать этот код:
WITH data AS (
SELECT json_merge(fav.favorites::json, '{"111111": "2000-00-00 11:07:05.710000","123123": "1999-00-00 11:07:05.710000"}'::json)::json
FROM mobappb2c_profile.client_material as fav
WHERE crm_id = '123')
SELECT
sku2date.key AS sku
FROM data AS fav,
to_jsonb(fav) as js,
jsonb_each(js) AS sku2date
order by sku2date.value desc;
, поэтому я хочу объединить некоторые json, и после объединения мне нужно выбрать все ключи, но когда я делаю это через секунду, выберите jsonb_each (... я получаю значение результата:
sku
----------
json_merge
как это возможно?
я обнаружил, что функция json_merge
не вставляет данные таким образом, поэтому я запутался, и мне нужна помощь