2017-07-28 11 views
1

SQLコマンドを実行し、その結果をJSON形式のテキストファイルにエクスポートする方法が必要です。SQLクエリをJSON形式のテキストファイルにエクスポート

私は、このリンクを持っている:

をしかし、私は彼の文のCREATE_COLUMNセクション、また本当に彼はそれが私のDBとどのように関係するかを理解するために使用する用語を理解していません。

誰でもこのようなクエリで私のための彼の例を簡略化できますか?

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

どれでも提案?

おかげ

編集:それは

+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 

を助け場合、私はMariaDBを実行COLUMN_CREATE以外のすべてを無視します。これがJSONの作成が行われている場所です。 OK、私たちは持っている:

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

COLUMN_ADDはJSONに列を追加する機能です。各引数は、その値と対になるキーです。だから'name'はJSONオブジェクトのキーとなり、値はnameとなります。この場合、表nameの列productです。

だから、あなたの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 

そして、あなたがしたいJSON型としてキャストし、我々はAS jsonを持ってCOLUMN_JSONコマンドの最後に:これはあなたのクエリがどのように見えるかです。

+0

ありがとうございますが、そのコードでエラーが発生します。ここで私が使用したもののより明確な例があります:https://pastebin.com/FEFvvaXm – user7433145

+0

データベースではなくテーブルから選択する必要があります。 –

+0

まだ動作しません。私のDBの名前(プライバシー上の理由から変更)は「cubesat」で、私のテーブルの名前は「場所」です。私のすべてのデータはこの「場所」表に保管されています。あなたのコマンドで、私はFROM cubesat.placesを実行してDB /テーブル名を指定します。 DB名なしでテーブルを指定するだけでは動作しません。また、db /テーブル名のバリエーションも指定しないと動作しません。 Pastebinが更新されました:https://pastebin.com/yi9j76TG – user7433145

関連する問題