返回
创建于
状态公开
在 PostgreSQL 中,如果你有一个字段是 JSON 或 JSONB 类型的数组,想要查询这个数组中第一个元素的 id 字段,可以使用 JSON 操作符来提取数据。
假设你的表叫 my_table,字段名叫 data,其内容类似于:
1[
2 {"id": 1, "name": "A"},
3 {"id": 2, "name": "B"}
4]查询 JSON 数组第一个元素的 id
如果 data 是 JSON 类型:
1SELECT (data->0->>'id')::int AS first_id
2FROM my_table;如果 data 是 JSONB 类型(推荐):
1SELECT (data->0->>'id')::int AS first_id
2FROM my_table;说明:
->表示取出 JSON 对象或数组元素(返回 JSON 类型)。->>表示取出 JSON 字段对应的文本值(返回文本类型)。data->0表示取出数组的第一个元素(索引从 0 开始)。->>'id'表示从这个 JSON 对象中取出id的值(作为文本)。::int表示强制转换为整数类型(可选,视你需要而定)。
进阶:带条件查询第一个元素的 id(例如只查某些行)
1SELECT (data->0->>'id')::int AS first_id
2FROM my_table
3WHERE (data->0->>'name') = 'A';