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

MySQL多SELECT查询实现求助:获取特定结构结果

解决MySQL多SELECT查询返回指定JSON格式的问题

你的原SQL会报错,因为SELECT列表中的子查询必须是单行单列的标量子查询,而你的第一个子查询返回单行两列,第二个子查询可能返回多行,违反了这个规则。要得到你期望的JSON格式结果,可以利用MySQL的JSON函数来实现:

正确SQL示例

SELECT JSON_ARRAY(
  -- 将query1的单行两列转为JSON对象
  (SELECT JSON_OBJECT('column1', column1, 'column2', column2) FROM table1 WHERE column3='something'),
  -- 将query2的多行数据转为数组,再包装成指定结构的JSON对象
  JSON_OBJECT('query2', (SELECT JSON_ARRAYAGG(column4) FROM table1 WHERE column4='something'))
) AS result;

关键函数说明

  • JSON_OBJECT(key1, val1, key2, val2):将指定的键值对组合成一个JSON对象,用来把query1的两列数据打包成单个JSON值。
  • JSON_ARRAYAGG(column):将指定列的多行数据聚合为一个JSON数组,解决query2返回多行的问题。
  • JSON_ARRAY(item1, item2):把query1的JSON对象和query2的JSON对象组合成一个数组,匹配你想要的结果格式。

结果示例

假设table1中符合条件的数据如下:

column1column2column3column4
foobarsomethingval1
xxxyyyothersomething
zzzwwwothersomething

执行SQL后,result字段会返回:

[{"column1": "foo", "column2": "bar"}, {"query2": ["something", "something"]}]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 07:05:52