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

如何将MySQL查询结果转为对象数组作为另一查询单列输出

查询结果示例

直接在MySQL中用内置函数拼接即可,不需要应用层额外处理,根据你的MySQL版本选对应写法即可。


方法1:MySQL 5.7及以上版本(支持JSON函数,推荐)

用内置JSON聚合函数生成标准结构,如果你需要严格匹配单引号格式,加个替换函数即可。

  • 输出标准JSON格式(双引号,绝大多数程序解析场景完全兼容):
-- 把下方的表名、字段名替换成你实际业务的字段即可
SELECT JSON_ARRAYAGG(
    JSON_OBJECT(
        'ID', ID,
        'OrderId', OrderId,
        'TimesTamp', DATE_FORMAT(TimesTamp, '%Y-%m-%d')
    )
) AS target_array
FROM 你的原表名
-- 此处可加WHERE等筛选条件

输出示例:
[{"ID":437, "OrderId":255, "TimesTamp":"2021-12-15"},{"ID":438, "OrderId":255, "TimesTamp":"2021-12-15"}]

  • 严格输出你要求的单引号格式:
SELECT REPLACE(
    JSON_ARRAYAGG(
        JSON_OBJECT(
            'ID', ID,
            'OrderId', OrderId,
            'TimesTamp', DATE_FORMAT(TimesTamp, '%Y-%m-%d')
        )
    ),
    '"', "'"
) AS target_array
FROM 你的原表名
-- 此处可加WHERE等筛选条件

输出示例完全匹配你的要求:
[{'ID':437, 'OrderId':255, 'TimesTamp':'2021-12-15'},{'ID':438, 'OrderId':255, 'TimesTamp':'2021-12-15'},...]


方法2:MySQL 5.6及以下低版本(无JSON函数)

用字符串拼接函数实现:

SELECT CONCAT(
    '[',
    GROUP_CONCAT(
        CONCAT(
            "{'ID':", ID,
            ", 'OrderId':", OrderId,
            ", 'TimesTamp':'", DATE_FORMAT(TimesTamp, '%Y-%m-%d'), "'}"
        ) SEPARATOR ','
    ),
    ']'
) AS target_array
FROM 你的原表名
-- 此处可加WHERE等筛选条件

注意:GROUP_CONCAT默认最大长度为1024字节,结果集较大时会被截断,执行拼接前先运行下面的命令调大当前会话的长度限制:
SET SESSION group_concat_max_len = 102400;


作为子查询嵌入其他查询的写法

直接把上面的拼接逻辑作为子查询即可,示例:

SELECT 
    main.OrderId,
    (
        -- 这里放上面写好的数组拼接逻辑,加好和主表的关联条件即可
        SELECT REPLACE(
            JSON_ARRAYAGG(JSON_OBJECT(
                'ID', sub.ID,
                'OrderId', sub.OrderId,
                'TimesTamp', DATE_FORMAT(sub.TimesTamp, '%Y-%m-%d')
            )), '"', "'"
        )
        FROM 你的原表名 sub
        WHERE sub.OrderId = main.OrderId
    ) AS record_array
FROM (SELECT DISTINCT OrderId FROM 你的原表名) main

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:18:21