2017-07-28 75 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

相關問題