首先准备数据表


SET FOREIGN_KEY_CHECKS=0;-- ----------------------------
-- Table structure for category
-- ----------------------------
DROP TABLE IF EXISTS `category`;
CREATE TABLE `category` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(100) DEFAULT NULL,`pid` int(11) DEFAULT '0',`status` int(2) DEFAULT '1',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4;-- ----------------------------
-- Records of category
-- ----------------------------
INSERT INTO `category` VALUES ('1', '招牌奶茶', '0', '1');
INSERT INTO `category` VALUES ('2', '果汁饮品', '0', '1');
INSERT INTO `category` VALUES ('3', '奶昔', '0', '1');
INSERT INTO `category` VALUES ('4', '咖啡', '0', '1');
INSERT INTO `category` VALUES ('5', '原味奶茶', '1', '1');
INSERT INTO `category` VALUES ('6', '草莓奶茶', '1', '1');
INSERT INTO `category` VALUES ('7', '香芋奶茶', '1', '1');
INSERT INTO `category` VALUES ('8', '柠檬汁', '2', '1');
INSERT INTO `category` VALUES ('9', '柳橙汁', '2', '1');
INSERT INTO `category` VALUES ('10', '黑加仑汁', '2', '1');
INSERT INTO `category` VALUES ('11', '哈密奶昔', '3', '1');
INSERT INTO `category` VALUES ('12', '青苹果奶昔', '3', '1');
INSERT INTO `category` VALUES ('13', '卡布奇诺', '4', '1');
INSERT INTO `category` VALUES ('14', '摩卡咖啡', '4', '1');

sql代码

SELECT
CONCAT('[',
GROUP_CONCAT( JSON_OBJECT('id',c.id,'name', c.name, 'pid', c.pid, 'status', c.status, 'children', c.children) )
,']')
FROM
( SELECTa.*, (CONCAT('[',GROUP_CONCAT(IF (b.id > 0,JSON_OBJECT ('id',b.id,'name',b. NAME,'status',b. STATUS,'pid',b.pid),NULL)),']')) children
FROMcategory a
LEFT JOIN (SELECT * FROM category) b ON b.pid = a.id
WHEREa.pid = 0
GROUP BYa.id ) c;

返回结果:

[{"id": 1, "pid": 0, "name": "招牌奶茶", "status": 1, "children": "[{\"id\": 5, \"pid\": 1, \"name\": \"原味奶茶\", \"status\": 1},{\"id\": 6, \"pid\": 1, \"name\": \"草莓奶茶\", \"status\": 1},{\"id\": 7, \"pid\": 1, \"name\": \"香芋奶茶\", \"status\": 1}]"},{"id": 2, "pid": 0, "name": "果汁饮品", "status": 1, "children": "[{\"id\": 8, \"pid\": 2, \"name\": \"柠檬汁\", \"status\": 1},{\"id\": 9, \"pid\": 2, \"name\": \"柳橙汁\", \"status\": 1},{\"id\": 10, \"pid\": 2, \"name\": \"黑加仑汁\", \"status\": 1}]"},{"id": 3, "pid": 0, "name": "奶昔", "status": 1, "children": "[{\"id\": 11, \"pid\": 3, \"name\": \"哈密奶昔\", \"status\": 1},{\"id\": 12, \"pid\": 3, \"name\": \"青苹果奶昔\", \"status\": 1}]"},{"id": 4, "pid": 0, "name": "咖啡", "status": 1, "children": "[{\"id\": 13, \"pid\": 4, \"name\": \"卡布奇诺\", \"status\": 1},{\"id\": 14, \"pid\": 4, \"name\": \"摩卡咖啡\", \"status\": 1}]"}]

json展示:

第二种类型的

 SELECTa.*, (CONCAT('[',GROUP_CONCAT(IF (b.id > 0,JSON_OBJECT ('id',b.id,'name',b. NAME,'status',b. STATUS,'pid',b.pid),NULL)),']')) children
FROMcategory a
LEFT JOIN (SELECT * FROM category) b ON b.pid = a.id
WHEREa.pid = 0
GROUP BY a.id

结果:

mysql 5.7 查询分类并返回json格式的数据相关推荐

  1. (八): 查询结果直接返回Json格式数据

    Bee简单易用:单表操作.多表关联操作,可以不用写sql,极少语句就可以完成SQL操作:10分钟即可学会使用. Bee功能强大:复杂查询也支持向对象方式,分页查询性能更高,一级缓存即可支持个性化优化. ...

  2. @ReponseBody返回json格式的数据

    springmvc返回json格式的数据

  3. asp.net MVC控制器中返回JSON格式的数据时提示下载

    Asp.net mvc在接收的是JSON格式的数据,但是奇怪的是在IE中提示下载文件,其他浏览器中一切正常,下载后,里面的内容就是在控制器中返回的数据.代码如下: 视图中js代码: $("# ...

  4. django返回json格式的数据的方法

    需求问题描述: 在使用ajax时,回调函数需要接受多个参数,查询资料,得知使用json格式的数据比较好(当然也可以使用xml).由于项目使用的是django,这就牵扯到django后端如何传输json ...

  5. PHP 3 HTML POST带参数请求 后端返回json格式的数据给前端

    微信小程序开发交流qq群   173683895    承接微信小程序开发.扫码加微信. 前端代码 <!DOCTYPE html> <html lang="zh" ...

  6. php怎么返回json格式的数据

    转载于:https://www.cnblogs.com/huangshikun/p/6609667.html

  7. ajax后台如何把对象转为json_57. Django 2.1.7 查询数据返回json格式

    需求问题 在日常工作中,对于前端发送过来的请求,后端django大部分都是采用json格式返回,也有采用模板返回视图的方式. 在模板返回视图的方式的确很方便,但是如果涉及到动静分离.ajax请求这类, ...

  8. Spring MVC--使用Jackson返回JSON格式数据

    使用Jackson返回JSON格式数据 index.jsp <%@ page language="java" contentType="text/html; cha ...

  9. java 返回 json格式_java 如何返回json格式数据,需要技巧

    今天上午给同事调了半个小时的程序,最后发现是在后台代码的java返回json格式的数据出了个错误.因此就想到了广大的初学者一开始学习jquery的时候可能会遇到这个问题.现在我就把我的给大家分享一下, ...

最新文章

  1. java注释@para_Java中文档注释各字段的含义是什么?例如author表示作者,para表示参数等...
  2. UA MATH563 概率论的数学基础 中心极限定理24 随机变量的特征函数
  3. 函数式编程是啥玩意?map() reduce()(reduce()函数将数字列表转换为x进制数字)闭包、装饰器、偏函数
  4. 博途上载hmi程序_西门子HMI触摸屏(精智面板)恢复出厂设置方法
  5. POJ 2745 显示器 解题报告
  6. Unity3D学习笔记之四完善Prefab并添加First Person Controller
  7. python的重点和难点_python知识点汇总-Go语言中文社区
  8. CAFFE(FAQ.2):Ubuntu 配置caffe 框架之数据库读取,错误解决:ImportError: No module named leveldb解决办法...
  9. php面试题之三——PHP网络编程(高级部分)
  10. leetcode41. First Missing Positive
  11. 使用命令行修改当前gnome终端的名称技术
  12. 豪华版飞机大战系列(三)
  13. 屏幕取色器设计思路及源码
  14. utf-8 编码 转换 汉字 字符集
  15. 学生DW静态网页设计 红色中国文化主题网站设计 ——美丽中国1页HTML+CSS
  16. idea导出快捷键配置
  17. 实验一:线性表的基本操作实现及其应用
  18. 苹果中国官网新增蚂蚁花呗 24 期分期免息服务
  19. C# GDI+ 时钟表盘
  20. SIGMOD论文阅读笔记

热门文章

  1. 完整的保存onetab的书签信息
  2. find vba 模糊_求Find模糊查找和绝对查找的方法。
  3. 使用requests爬取实习僧网站数据
  4. 线段树+KMP-hdu-4125-Moles
  5. python3爬取新浪微博_Python3爬取新浪微博头条
  6. 【奥特曼迪迦表情包】
  7. C Primer Plus(第五版)2
  8. 三天打鱼两天晒网的直接差距
  9. java编程:放苹果
  10. 电信计费综合管理系统