INSERT INTO pilot_hobbies
VALUES ( 'Ivan',
'{ "sports": [ "футбол", "плавание" ],
"home_lib": true, "trips": 3
}'::jsonb ),
( 'Petr',
'{ "sports": [ "теннис", "плавание" ],
"home_lib": true, "trips": 2
}'::jsonb ),
( 'Pavel',
'{ "sports": [ "плавание" ],
"home_lib": false, "trips": 4
}'::jsonb ),
( 'Boris',
'{ "sports": [ "футбол", "плавание", "теннис" ],
"home_lib": true, "trips": 0
}'::jsonb );
INSERT 0 4
SELECT * FROM pilot_hobbies;
pilot_name |
i
hobbies
------------+--------------------------------------------------------
Ivan
| {"trips": 3, "sports": ["футбол", "плавание"],
"home_lib": true}
Petr
| {"trips": 2, "sports": ["теннис", "плавание"],
"home_lib": true}
Pavel
| {"trips": 4, "sports": ["плавание"],
"home_lib": false}
Boris
| {"trips": 0, "sports": ["футбол", "плавание",
"теннис"], "home_lib": true}
(4 строки)
Как видно, при выводе строк из таблицы порядок ключей в JSON-объектах не был
сохранен.
Предположим, что нужно сформировать футбольную сборную команду нашей авиа-
компании для участия в турнире. Мы можем выбрать всех футболистов таким спосо-
бом:
SELECT * FROM pilot_hobbies
WHERE hobbies @> '{ "sports": [ "футбол" ] }'::jsonb;
pilot_name |
i
hobbies
------------+--------------------------------------------------------
Ivan
| {"trips": 3, "sports": ["футбол", "плавание"],
"home_lib": true}
Boris
| {"trips": 0, "sports": ["футбол", "плавание",
"теннис"], "home_lib": true}
(2 строки)
Можно было эту задачу решить и таким способом:
Достарыңызбен бөлісу: