PostgreSQL查询JSON数据
warning:
这篇文章距离上次修改已过424天,其中的内容可能已经有所变动。
在PostgreSQL中查询JSON数据,可以使用json_populate_record和json_populate_recordset函数将JSON数据映射到指定的数据表。
以下是一个查询JSON数据的例子:
假设有一个名为users的表,结构如下:
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
);你有一个JSON数据集,例如:
[
{
"id": 1,
"name": "Alice",
"email": "alice@example.com"
},
{
"id": 2,
"name": "Bob",
"email": "bob@example.com"
}
]你可以使用以下查询将JSON数据集映射到users表:
SELECT json_populate_recordset(NULL::users, '[{"id": 1, "name": "Alice", "email": "alice@example.com"}, {"id": 2, "name": "Bob", "email": "bob@example.com"}]')这将返回一个包含两行数据的结果集,这些数据是从JSON数据中映射过来的。
如果你只想查询特定的JSON字段,可以使用json_extract_path_text或jsonb_extract_path_text函数:
SELECT id, json_extract_path_text(data, 'name') AS name, json_extract_path_text(data, 'email') AS email
FROM (
VALUES
('{"id": 1, "name": "Alice", "email": "alice@example.com"}'::jsonb),
('{"id": 2, "name": "Bob", "email": "bob@example.com"}'::jsonb)
) AS data(data);这将返回两行数据,每行包含id、name和email字段。
评论已关闭