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

MySQL中如何将表所有字段自动传入JSON_OBJECT生成JSON对象

版本适配解决方案

1. MySQL 8.0.19及以上版本(原生支持)

该版本开始官方已经内置了整字段转JSON的语法,直接在JSON_OBJECT中传入*即可自动将所有字段名作为键、对应字段值作为值生成JSON对象,无需手动枚举:

-- 单表场景
SELECT JSON_OBJECT(*) FROM table1;

-- 多表关联场景,指定表别名避免字段冲突
SELECT 
  JSON_OBJECT(t1.*) AS table1_json,
  JSON_OBJECT(t2.*) AS table2_json
FROM table1 t1
INNER JOIN table2 t2 ON t1.id = t2.relation_id;

该方式无额外性能开销,和手动枚举字段的运行效果完全一致。

2. 低于8.0.19的低版本MySQL

可以通过查询系统表动态生成JSON_OBJECT所需的参数,避免手动输入:

  1. 先临时调整分组拼接长度限制,避免字段过多时结果截断:
SET SESSION group_concat_max_len = 1000000;
  1. 执行语句生成参数串,替换语句中的你的库名、你的表名:
SELECT GROUP_CONCAT('"', COLUMN_NAME, '", ', COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = '你的库名' AND TABLE_NAME = '你的表名';
  1. 把查询得到的字符串复制粘贴到JSON_OBJECT()的括号中即可直接使用。

如果需要高频使用该能力,可以把上述逻辑封装为存储过程,传入库名、表名即可直接返回拼接完成的查询语句。

提示:如果存在敏感字段不需要返回,生成参数后可手动删除对应字段的配置,避免数据泄露。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 02:06:00