Здравствуйте, IT, Вы писали:
IT>Здравствуйте, WaSh, Вы писали:
WS>>Есть ли поддержка json/jsonb типов данных для Postgresql ?
IT>Ткните в доку, сделаем.
В принципе, описание типов
здесь и
здесь
Что нужно конкретно, пока не скажу, разбираюсь...
Но вот такие вопросы уже возникают (не у меня, но что-то похожее)
CREATE TABLE "test" (
"id" serial NOT NULL PRIMARY KEY,
"params" json,
);
INSERT INTO test(params) VALUES ('"test"');
INSERT INTO test(params) VALUES ('[1,2,3]');
INSERT INTO test(params) VALUES ('{"a":"test", "b":123}');
INSERT INTO test(params) VALUES ('{"a":"test", "c":{"d":1}}');
>>Выбрать строки с "a"="test"
select * from test where params->>'a' = 'test';
>>Как выбрать строки, где есть ключ "a" и "b"? + сортировка
SELECT *
FROM test
WHERE (params->>'a') IS NOT NULL AND (params->>'b') IS NOT NULL
ORDER BY params->>'a' DESC
>>Как выбрать строки, где есть ключ "a" и ("b" или "c")?
SELECT *
FROM test
WHERE (params->>'a') IS NOT NULL AND
((params->>'b') IS NOT NULL OR (params->>'c') IS NOT NULL)
ORDER BY params->>'a' DESC
>>Как выбрать строки, где в ключе "c" есть ключ "d"?
SELECT *
FROM test
WHERE ((params->'c')->>'d') IS NOT NULL
ORDER BY params->>'a' DESC