参见英文答案 > How create json format with group-concat mysql?                                    6个

我有两个不同的表 – 一个称为“产品”,其中包含有关在线商店的产品信息,另一个称为“图像”,其中包含相应的产品图像(每个产品有几个图像).

我想在主表“products”上加入表“images”,并以JSON格式输出结果.

表“产品”如下所示(简化):

id | name

----|--------

57 | apple

58 | tomato

59 | ...

并且产品图像的表格“图像”:

img_id | img | p_id | listorder

-------|-------------|------|----------

32 | apple1.jpg | 57 | 1

33 | apple2.jpg | 57 | 2

34 | tomato1.jpg | 58 | 1

35 | ... | ... | ...

到现在为止,我的查询是这样的:

$sql = "SELECT

p.id as p_id,

p.name as p_name,

i.*

FROM products p

JOIN (SELECT * FROM images WHERE listorder=1)

AS i ON (i.p_id = p.id)";

因此输出(在将数据提取到数组并转换为JSON之后)看起来像这样:

[{

"id": "57",

"name": "apple",

"img": "apple1.jpg"

}, {

"id": "58",

"name": "tomato",

"img": "tomato1.jpg"

}]

所以我的问题是:我如何输出以下内容?

[{

"id": "57",

"name": "apple",

"img": [{"img_id": "32","img": "apple1.jpg"}, {"img_id": "33","img": "apple2.jpg"}]

}, {

"id": "58",

"name": "tomato",

"img": [{"img_id": "34","img": "tomato1.jpg"}]

}]

解决方法:

SELECT

p.id as p_id,

p.name as p_name,

group_concat(concat('{"img_id":"',i.img_id,'"img":"',i.img,'"}') separator ',') as img

FROM products p

JOIN (SELECT * FROM images WHERE listorder=1)

AS i ON (i.p_id = p.id)

GROUP BY p.id,p.name

标签:json,php,mysql

来源: https://codeday.me/bug/20190710/1429180.html

json mysql php_PHP MySQL连接表作为JSON相关推荐

  1. Spark SQL与外部数据源的操作(Spark SQL ——> CSV/JSON/Parquet/hive/mysql)

    目录 一.Spark SQL支持的外部数据源 二.Spark SQL -> CSV 2.1 读CSV文件 a.有列名 b.无列名 2.2 写CSV文件 三.Spark SQL -> JSO ...

  2. mysql与redis数据同步(c/c++)(写mysql同步到redis,并且以json格式保存)

    系统开发中时常会需要缓存来提升并发读的能力,这时可以通过mysql的UDF和hiredis来进行同步 原理: 通过mysql自动同步redis 在服务端开发过程中,一般会使用MySQL等关系型数据库作 ...

  3. mysql json_set多维_mysql之json高级使用

    前言 JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似XML,但是比XML简单,易读并且易编写.对机器来说易于解析和生成,并且会减少网络带宽的传输. JSON的格式非常简单:名称/ ...

  4. mysql数据库生成json_Python3实现 将MySQL数据库中的记录生成JSON数据

    思路:首先连接MYSQL数据库,将查询到的数据存放到字典中,然年将每个组装好的字典放到List中 调用json.dumps(jsonData, ensure_ascii=False)方法,生成JSON ...

  5. mysql json invalid json text_MySQL 5.7新增加的json数据类型

    MySQL 5.7中有json存储类型了以前我们只能通过php来进行序列化了不过现在就不需要了我们可以直接使用MySQL 5.7的json数据类型来存储json格式数据了,具体来看介绍. 在MySQL ...

  6. mysql json坑_使用mysql innodb 使用5.7的json类型遇到的坑和解决办法

    ---------------------------------------------- #查询JSON的某个字段 select data -> '$.Host' from temp #创建 ...

  7. mysql查询转json数据库_json格式数据,将数据库中查询的结果转换为json, 然后调用接口的方式返回json(方式一)...

    调用接口,无非也就是打开链接 读取流 将结果以流的形式输出 将查询结果以json返回,无非就是将查询到的结果转换成jsonObject ================================ ...

  8. mysql操作json优点和缺点_MYSQL 5.7中的本机JSON支持:MYSQL中JSON数据类型的优缺点是什么?...

    在MySQL 5.7中,新的数据类型用于在JSON表中存储JSON数据. 添加. 显然,这将是MySQL的巨大变化. 他们列出了一些好处 Document Validation - Only vali ...

  9. mysql 左连接 去重复,MySQL删除左连接,3个表上的重复列

    我有三个表,每个表都有一个外键.当我执行连接时,我得到重复的列. 特定 mysql> describe Family; +---------------+-------------+------ ...

  10. 读取mysql数据库的数据,转为json格式

    # coding=utf-8 ''' Created on 2016-10-26 @author: Jennifer Project:读取mysql数据库的数据,转为json格式 ''' import ...

最新文章

  1. 渔村小厂,如何成长为5G霸王?
  2. 代码审计之CVE-2018-7600-Drupal远程代码执行漏洞-Render API
  3. 非阻塞,send后马上close消息能成功发出去吗
  4. leetcode 95. Unique Binary Search Trees II | 96. Unique Binary Search Trees
  5. ZOJ2724_Windows Message Queue(STL/优先队列)
  6. HttpClient上传下载文件
  7. hdu5354 Bipartite Graph
  8. 博文视点大讲堂41期-SEO难点之网站内部链接结构
  9. 去除DataTable重复数据的三种方法(转)
  10. 手把手教做无人驾驶算法(二十六)--基于终端约束的MPC 控制
  11. 生成小程序支付签名paysign
  12. 什么是点对点?什么去中心化?
  13. tp路由服务器无响应,路由器无法PPPOE链接上网老显示服务器无响应
  14. Android实现淘宝、京东首页浏览效果
  15. mongodb 聚合函数求平均值及时差处理
  16. SkinH皮肤使用教程,及皮肤效果测试工具
  17. 苹果开发者:如何将准备好的应用上传到iTunes Connect
  18. 人脸识别广告显示屏通过人像识别、面部识别应用
  19. 怎样在Windows下挂载ESP分区
  20. 计算机音乐念诗之王,小可儿《念诗之王》[FLAC/MP3-320K]

热门文章

  1. Android Handler.post(Runnable r)再一次梳理Android的消息机制(以及handler的内存泄露)
  2. ubuntu下开机自动运行脚本以及定时任务的处理
  3. centos安装openldap过程
  4. P3986 斐波那契数列
  5. 【.NET重修计划】数组,集合,堆栈的问题
  6. 游戏开发之测试篇(C++)
  7. 动态路由之RIP综合实验
  8. linux命令行界面如何安装图形化界面
  9. NYOJ--12--喷水装置(二)
  10. 【转】一致性hash算法与server列表维护