Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 将SQL查询导出为JSON格式的文本文件_Mysql_Mariadb - Fatal编程技术网

Mysql 将SQL查询导出为JSON格式的文本文件

Mysql 将SQL查询导出为JSON格式的文本文件,mysql,mariadb,Mysql,Mariadb,我需要一种方法来运行SQL命令,然后将结果导出到JSON格式的文本文件 我有这个链接: 但我不理解他的声明中的CREATE_列部分,也不理解他用来理解它与我的数据库的关系的术语 有人能帮我简化一下他在这样一个问题上的例子吗 SELECT * FROM thisismy.database; 如果使用INTO OUTFILE命令执行上述操作,则会得到如下数据: 1 Armand Warren 56045 Taiwan, Province of China 0

我需要一种方法来运行SQL命令,然后将结果导出到JSON格式的文本文件

我有这个链接:

但我不理解他的声明中的CREATE_列部分,也不理解他用来理解它与我的数据库的关系的术语

有人能帮我简化一下他在这样一个问题上的例子吗

SELECT * FROM thisismy.database;
如果使用INTO OUTFILE命令执行上述操作,则会得到如下数据:

1     Armand         Warren   56045   Taiwan, Province of China   0        0
2      Xenos    Salas        71090        Liberia        0                0
3      Virginia   Whitaker   62723   Nicaragua   0                       0
4      Kato Patrick   97662   Palau   0                       0
5      Cameron      Ortiz P9C5B6   Eritrea 0                0
{ "aaData": [
    [ "1", "Armand", "Warren", "56045", "Taiwan, Province of China" ],
    [ "2", "Xenos", "Salas", "71090", "Liberia" ],
    [ "3", "Virginia", "Whitaker", "62723", "Nicaragua" ],
    [ "4", "Kato", "Patrick", "97662", "Palau" ],
    [ "5", "Cameron", "Ortiz", "P9C 5B6", "Eritrea" ]
] }
但我需要它看起来像这样:

1     Armand         Warren   56045   Taiwan, Province of China   0        0
2      Xenos    Salas        71090        Liberia        0                0
3      Virginia   Whitaker   62723   Nicaragua   0                       0
4      Kato Patrick   97662   Palau   0                       0
5      Cameron      Ortiz P9C5B6   Eritrea 0                0
{ "aaData": [
    [ "1", "Armand", "Warren", "56045", "Taiwan, Province of China" ],
    [ "2", "Xenos", "Salas", "71090", "Liberia" ],
    [ "3", "Virginia", "Whitaker", "62723", "Nicaragua" ],
    [ "4", "Kato", "Patrick", "97662", "Palau" ],
    [ "5", "Cameron", "Ortiz", "P9C 5B6", "Eritrea" ]
] }
有什么建议吗

谢谢

编辑:如果有帮助,我会运行MariaDB

SELECT CONCAT('[\n\t', GROUP_CONCAT(
        COLUMN_JSON(
            COLUMN_ADD(
                COLUMN_CREATE('id', id)
                , 'name', name
                , 'price', price
            )
        )
        ORDER BY id
        SEPARATOR ',\n\t'
    ), '\n]') AS json
    FROM product \G
忽略除创建列之外的所有内容。这就是JSON创建的地方。好的,我们有:

COLUMN_JSON(
        COLUMN_ADD(
            COLUMN_CREATE('id', id)
            , 'name', name
            , 'price', price
        )
    )
COLUMN\u ADD
是将列添加到JSON的函数。每个参数都是与其值配对的键。因此,
'name'
是JSON对象中的键,而
name
是值。在本例中,它是表
product
中的
name

假设您想查询
用户
表并获取他们的名字、姓氏和ID。这是您的查询结果:

SELECT CONCAT('[\n\t', GROUP_CONCAT(
        COLUMN_JSON(
            COLUMN_ADD(
                COLUMN_CREATE('id', id)
                , 'first_name', first_name
                , 'last_name', last_name
            )
        )
        ORDER BY id
        SEPARATOR ',\n\t'
    ), '\n]') AS json
    FROM users \G
列\u JSON
命令的末尾,我们将
转换为JSON
,它将它转换为您想要的JSON类型。

您可以使用sql2json(我创建了python包)

您将获得:

{
    data: [
        {
            "a": 1,
            "b": 5
        },
        {
            "a": 2,
            "b": 10
        }
    ]
}

sql2json是免费的,托管在github中:

谢谢,但我发现该代码有一个错误。这里有一个我使用过的更清楚的例子:您需要从表中选择,而不是从数据库中选择。仍然不起作用。我的数据库名称(出于隐私原因更改)为“cubesat”,我的表名称为“places”。我的所有数据都存储在此“位置”表中。因此,使用您的命令,我从cubesat.places指定DB/表名。如果我只指定没有DB名称的表,也没有DB/表名称的任何变化,那么它将不起作用。更新的Pastebin:您的SQL语法有错误;检查与您的MariaDB服务器版本相对应的手册,以了解在“ORDER BY mimetype_file1 SEPARATOR',\n\t'),“\n]”附近使用的正确语法,因为第8行的json FROM dbname“第8行是ORDER BY portionSee