MySQL查询如何将多个字段设置为数组类型别名返回
实现方案
你之前的写法不符合SQL语法规范,原生SQL本身是二维表结构,不支持通过别名加[]的方式直接生成嵌套数组结构,你要的嵌套格式可以通过两种方式实现:
方式1:MySQL 5.7+ 用JSON函数直接生成
直接通过SQL输出符合要求的JSON结构,后端拿到后直接解析即可:
SELECT id, JSON_OBJECT( 'first_value', first_value, 'second_value', second_value, 'third_value', third_value ) AS `values` FROM 你的实际表名;
注意:
values是MySQL保留关键字,作为别名需要用反引号包裹转义。
你拿到查询结果后,把values字段的JSON字符串解析为数组,就能完全匹配你贴的输出结构。
方式2:后端代码手动组装(兼容所有MySQL版本)
如果你的MySQL版本不支持JSON函数,直接查询所有字段后在业务代码里组装即可,以PHP为例:
// 假设你已经从数据库查询到了原始行数据$row $res = [ 'id' => $row['id'], 'values' => [ 'first_value' => $row['first_value'], 'second_value' => $row['second_value'], 'third_value' => $row['third_value'] ] ];
内容的提问来源于stack exchange,提问作者Louis__
相关产品推荐
相关产品推荐

