2017-07-28 189 views
1

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

我有此链接:

但我不明白他的发言CREATE_COLUMN部分,也不是真正的术语,他用明白它如何与我的数据库。

任何人都可以请这样简化他的例子吗?

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" ] 
] } 

任何建议?

感谢

编辑:我跑MariaDB的,是否可以帮助

+0

看到https://mariadb.com/kb/en/mariadb/connect-json-table-type/ –

回答

1
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 

忽略一切除了COLUMN_CREATE。这是JSON创建发生的地方。好了,我们有:

COLUMN_JSON(
     COLUMN_ADD(
      COLUMN_CREATE('id', id) 
      , 'name', name 
      , 'price', price 
     ) 
    ) 

COLUMN_ADD是添加列到JSON的功能。每个论点都是一个与其价值相配的关键。因此,'name'是JSON对象中的关键字,而name是值的内容。在这种情况下,它是来自表product的列name

因此,假设您想查询您的users表并获取他们的名字,姓氏和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 

,并在COLUMN_JSON命令,我们有AS json,其中蒙上它,只要你想的JSON类型的结束。

+0

谢谢,但我得到该代码的错误。以下是我使用过的更清晰的示例:https://pastebin.com/FEFvvaXm – user7433145

+0

您需要从表中选择,而不是数据库。 –

+0

仍然无法正常工作。我的数据库名称(因隐私原因而更改)是'cubesat',我的表名称是'places'。我所有的数据都存储在这个'地方'表中。因此,通过您的命令,我可以从cubesat.places中指定DB /表名。如果我只是指定没有数据库名称的表,也不会使用db/table名称的任何变体。更新的Pastebin:https://pastebin.com/yi9j76TG – user7433145

相关问题