表数据:

查询展示效果:

{
	"class_no": [
		 {"student_name": "张三", "sex": "男", "age": "12", "class": "一班"}
		,{"student_name": "李四", "sex": "男", "age": "12", "class": "一班"}
		,{"student_name": "王五", "sex": "男", "age": "11", "class": "一班"}
		,{"student_name": "赵六", "sex": "女", "age": "13", "class": "一班"}
		,{"student_name": "钱七", "sex": "男", "age": "14", "class": "二班"}
		,{"student_name": "王八", "sex": "女", "age": "15", "class": "二班"}
	]
}

方法一(手动转换):

SELECT CONCAT("{\"class_no\":[",GROUP_CONCAT(a.msg),"]}") FROM 
(
SELECT 
class_no
,
GROUP_CONCAT(
"{"
"\"student_name\":\"",student_name,"\",",
"\"sex\":\"",sex,"\",",
"\"age\":\"",age,"\",",
"\"class\":\"",class_no,"\"","}"
) msg
FROM student_info  GROUP BY class_no
)a

方法二(mysql自带的函数转换):

SELECT CONCAT('[',GROUP_CONCAT(JSON_OBJECT( 
'student_name',student_name,'sex',sex,'age',age,'class_no',class_no)),']')FROM student

注意:以上SQL查询方法是使用了

GROUP_CONCAT()

1、该函数有长度限制,一般默认长度为1024,可以使用这篇博客(https://blog.csdn.net/qq_39706570/article/details/103999965)轻松修改长度范围。

 

GitHub 加速计划 / js / json
41.72 K
6.61 K
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:1 个月前 )
960b763e 4 个月前
8c391e04 7 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐