You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Adminer中将含JSONB字段的表转为可排序表格视图

解决Adminer中PostgreSQL JSONB字段转可排序搜索视图的问题

我来帮你搞定这个需求!你想要把嵌套在JSONB字段里的数据变成Adminer中像普通表一样能排序、搜索的列,其实创建数据库视图是最直接靠谱的方案,完全不需要依赖额外插件,用你现有的内置插件Adminer Docker镜像就能实现。

一、创建符合要求的视图

你已经找对了核心语句,我再把它明确出来,直接执行就能生成需要的视图:

CREATE VIEW PriceSummary AS
select r.*
from prices p
cross join lateral jsonb_each(p.sub_table) as x(key, value)
cross join lateral jsonb_to_record(x.value) as r(
    "Name" text,
    "Price" int,
    index int,
    "Date" date
);

语句解释:

  • jsonb_each(p.sub_table):把你的JSONB对象拆分成键值对(比如原数据里的"0"、"1"键和对应的对象值)
  • jsonb_to_record(x.value):将每个JSON对象转换成关系型表结构,通过指定字段名和类型,让Adminer能识别为普通列,支持排序和搜索

二、在Adminer中使用视图

创建完成后,你在Adminer左侧的数据库对象列表里就能找到PriceSummary这个视图。点击进入后,你会看到和普通表完全一样的界面:

  • 列分别是Name、Price、index、Date
  • 点击列名就能直接排序
  • 顶部的搜索框可以针对单个字段进行搜索,和操作普通数据库表没有区别

三、验证视图数据

你可以先执行查询确认数据符合预期:

SELECT * FROM PriceSummary;

返回的结果会是结构化的表格:

NamePriceindexDate
CompX1012020-01-09
CompY2012020-01-09
CompX1922020-01-10

关于json-column插件的说明

你提到的json-column插件主要是增强Adminer中JSON字段的显示和编辑体验(比如展开JSON结构),但它没法把JSON内部的字段转换成独立的、可排序的列。所以用视图的方案更贴合你的需求,而且不需要修改Adminer的插件配置,完美适配你用内置插件Docker镜像的场景。

内容的提问来源于stack exchange,提问作者ceharep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 20:23:12