MySQL 聚合成 json 格式化输出
Json 格式化输出
MySQL 实现
- 将我们的数据库按照 json 的格式,格式化输出
- 管理员模式开启 MySQL 服务
1 | # 名字和安装时相关 |
- 进入命令行模式
1 | # 得输入密码 |
建表
- 新建数据库并使用
1 | create database json_format; |
- 导入数据
- 代码
- 一些修改
- 约束条件在插入数据之后
- 一些数据补全,缺省的补为 null
- 第 3 个约束条件笔误,最后面是 tno
- 查看有哪些表
1 | show tables; |
输出为 json
- 新建一个表,用于输出结果
1 | create table stu_info ( |
- 原始数据
1 | select * from student; |
- 如下指令可以生成除了课程之外的 json 数据
1 | select CONCAT('{', |
- 接着只需要生成课程数据即可
1 | select |
- 结果如下
- 接着我们把上面两个结合在一起即可
1 | -- 插入数据部分 |
- 我们可以把上面的数据插入到一个表里,然后输出成 json 文件即可
- 上面代码取消第二行的注释即可
- 输出结果
- 如下命令得开权限,否则会报错
1 | select CONCAT( |
- 会有字符串缺失的问题
- 可以修改最长字符串大小
1 | -- 设置最长字符串大小 |
- 可以直接在外面执行命令,直接命令行
-N
表示取消表头- 另外一种解决方法是输出的时候,每行一条 json 数据
1 | mysql -N -h 127.0.0.1 -u root -p --default-character-set=UTF8 -e "set SESSION group_concat_max_len=10000; select CONCAT('{', '\"students\": ', '[' , group_concat(info), ']', '}') stu_infos from stu_info" json_format > D:/MyTemp/stu_infos.json |
- 结果如下
- 格式化结果如下