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

PostgreSQL中如何将row_to_json输出的bytea字段转为Base64编码?

在PostgreSQL中用row_to_json输出Base64格式的bytea字段

当然可以实现这个需求!PostgreSQL内置的encode()函数正好能帮你把bytea类型的数据转换成Base64编码,结合row_to_json()一起用就能得到你想要的输出。

核心思路

默认情况下,row_to_json()会把bytea字段输出为十六进制字符串(比如\x0102030405),而encode(bytea_column, 'base64')可以直接将bytea数据编码为Base64格式,我们只需要在生成JSON前先处理这个字段即可。

具体示例

假设你有一张表test_table,其中f1是bytea类型的字段,想要把整行数据转成JSON且f1为Base64格式,可以用下面的SQL:

SELECT row_to_json(t)
FROM (
  SELECT encode(f1, 'base64') AS f1
  FROM test_table
) t;

如果你的表还有其他字段需要保留,只需要在子查询里一并列出就行:

SELECT row_to_json(t)
FROM (
  SELECT id, username, encode(f1, 'base64') AS f1
  FROM test_table
) t;

执行这个查询后,你就能得到类似{"f1":"AQIDBAU="}的期望输出了。这个方法在PostgreSQL 9.3及以上版本都能正常工作,因为encode()函数是从这个版本开始稳定支持的。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 08:10:56