相关疑难解决方法(0)

如何在MySQL中将结果表转换为JSON数组

我想在MySQL中将结果表转换为JSON数组,最好只使用普通的MySQL命令.例如查询

SELECT name, phone FROM person;

| name | phone |
| Jack | 12345 |
| John | 23455 |
Run Code Online (Sandbox Code Playgroud)

预期的JSON输出将是

[
  {
    "name": "Jack",
    "phone": 12345
  },
  {
    "name": "John",
    "phone": 23455
  }
]
Run Code Online (Sandbox Code Playgroud)

有没有办法在普通的MySQL中做到这一点?

编辑:

有一些答案如何使用例如MySQL和PHP,但我找不到纯MySQL解决方案.

mysql json etl data-conversion

34
推荐指数
5
解决办法
5万
查看次数

如何使用mysql本机json函数生成嵌套的json对象?

在MySQL 5.7.12版本(手册中的第13.16节)中仅使用本机JSON功能(无PHP等)我试图编写一个查询,以从包含子对象的关系表生成JSON文档.给出以下示例:

CREATE TABLE `parent_table` (
   `id` int(11) NOT NULL,
   `desc` varchar(20) NOT NULL,
   PRIMARY KEY (`id`)
);
CREATE TABLE `child_table` (
   `id` int(11) NOT NULL,
   `parent_id` int(11) NOT NULL,
   `desc` varchar(20) NOT NULL,
   PRIMARY KEY (`id`,`parent_id`)
);
insert `parent_table` values (1,'parent row 1');
insert `child_table` values (1,1,'child row 1');
insert `child_table` values (2,1,'child row 2');
Run Code Online (Sandbox Code Playgroud)

我正在尝试生成一个如下所示的JSON文档:

[{
    "id" : 1,
    "desc" : "parent row 1",
    "child_objects" : [{
            "id" : 1,
            "parent_id" : 1,
            "desc" : "child row 1" …
Run Code Online (Sandbox Code Playgroud)

mysql json

8
推荐指数
2
解决办法
1万
查看次数

使用 join 从单个查询中获取嵌套数组

我有共同的情况,但我找不到共同的解决方案......

想象一下我有两个表,如作者和相应的书籍:

作者

+----+-----------+
| id | name      |
+----+-----------+
|  1 | O.Connor  |
|  2 | F.Myler   |
+----+-----------+
Run Code Online (Sandbox Code Playgroud)

图书

+----+-----------+-----------+----------------+
| id | author_id | title     | number_of_pages|
+----+-----------+-----------+----------------+
|  1 | 1         |Book 1     |315             |
|  2 | 1         |Book 2     |265             |
+----+-----------+-----------+----------------+
Run Code Online (Sandbox Code Playgroud)

我想在一个sql查询中从数据库获取数据(我使用mySQL,但这并不重要,我想要一个独立于数据库的解决方案),使用JOIN,例如:

SELECT A.*, B.title as book_title, B.number_of_pages as book_pages FROM authors A LEFT JOIN books B ON B.author_id=A.id
Run Code Online (Sandbox Code Playgroud)

由于大型数据库的生产力问题,我想避免循环中的多个查询。然后我需要将第二个表中的数据嵌套为子数组,以避免拥有相同数据的多个副本。换句话说,我需要将数据库的平面结果转换为嵌套的多维数组。它应该给出类似的内容:

[
    {
        "id": 3,
        "name": "O.Connor",
        "birth_date": "05.06.1985",
        "from": "England",
        "mother": "", …
Run Code Online (Sandbox Code Playgroud)

php mysql arrays multidimensional-array

0
推荐指数
1
解决办法
1932
查看次数