2017-04-04 17 views
0

私はMySQL 5.7の機能について読んでいますが、選択した行をJSON形式で返すか、結果全体をJSON形式で返すことができるのは不思議です。 私のデータは、通常のMySQLのテーブルのように見えている。MySQLを返すJSON

| 13162 |   1 | 178803 | 093ea6a6-1077-4ea4-8a23-647e1d621b4a             | 1485260588 | NULL | 
| 13163 |   1 | 178803 | 6f34579b-4745-4ec3-babd-ab12aab5b99c             | 1485260718 | NULL | 
| 13165 |   1 | 178802 | 6f34579b-4745-4ec3-babd-ab12aab5b94c             | 1485260705 | NULL | 
| 13166 |   1 | 178022 | 6f34579b-4745-4ec3-babd-ab12a4b5b94c             | 1485260645 | NULL | 
| 13168 |   1 | 178022 | 6f34579b-4745-4ec3-babd-ab32a4b5b94c             | 1485250645 | NULL | 
| 13169 |   1 | 178022 | 6f34579b-4745-4ec3-babd-ab32a4b5b945             | 1475250645 | NULL | 
| 13170 |   1 | 176022 | 6f34579b-4745-4ec3-babd-ab32a4b5b9e5             | 1465250645 | NULL | 
| 13171 |   1 | 170022 | 6f34579b-4745-4ec3-babd-ab32a4a5b9e5             | 1425250645 | NULL | 
| 13172 |   1 | 170022 | 6f34579b-4745-4ec3-babd-ab32a4aeb9e5             | 1426250645 | NULL | 
| 13173 |   1 | 178804 | ea7bcd3b-0f04-4ace-ba9b-a26d297029f7             | 1486474710 | NULL | 
| 13174 |   1 | 178804 | 39855021-ceb8-4178-a3cc-0ba11cf4490a             | 1486475039 | NULL | 
| 13175 |   1 |  2 | 6f34569b-4745-4ec3-b3bd-ab32a4aeb9e5             |  NULL | NULL | 
| 13176 |   1 |  2 | 39855021-ceb8-4578-a3cc-0ba11cf4490a             |  NULL | NULL | 
| 13177 |   1 |  2 | 39852021-ceb8-4578-a3cc-0ba11cf4490a             |  NULL | NULL | 
| 13178 |   1 |  2 | 39855421-ceb8-4578-a3cc-0ba11cf4490a             |  NULL | NULL | 

私はSELECT * FROM AccessToken;クエリを使用しています。 JSON形式で結果を返すにはどうすればよいですか?私はデータベースレベルでそれをやりたいと思っていました。なぜなら、膨大な量のデータがあるとプログラミングレベルが遅すぎるからです。私はGoを使ってJSONに変換するユーザーが200kのときに8秒を費やしました。あなたの例では

{ 
    [ 
    { 
     "id": 1123, 
     "token": "asdjkasldkjlasdjf" 
    }, 
    { 
     "id": 11323, 
     "token": "asdjkasdasdasldkjlasdjf" 
    } 
    ] 
} 
+0

JSONにはどのような構造が必要ですか? –

+0

@StefanoZanini構造はどういう意味ですか?私にとっては普通のjsonを取り戻すだけでは問題ありませんが、データをどのように見たいのかなどを更新しました。 – PumpkinSeed

+0

@LelioFaieta json_encodeとは何ですか? – PumpkinSeed

答えて

1

JSONが有効ではないですが、あなたがするのではなく、オブジェクトを取得したい場合、これは、あなたが

select concat('[', 
       group_concat(concat('{"id": "', 
            col1, 
            '", "token": "', 
            col2, 
            '"}' 
          ) separator ','), 
       ']') 
from myTable 

を望む何か必要があります。例えば、結果については

配列

select concat('{ "array": [', 
       group_concat(concat('{"id": "', 
            col1, 
            '", "token": "', 
            col2, 
            '"}' 
          ) separator ','), 
       ']}') 
from myTable 

内部のconcat関数で連結したものは明らかに依存しますテーブルの列名。

+0

はい、私はPostgres SELECTの' array_to_json(array_agg(t))FROM t'のような組み込み関数があると思っていました。常に異なる種類のクエリが存在するgoクエリビルダ。クエリがどのように見えるかは予測できません。 – PumpkinSeed

+0

私が知る限り、MySQLには組み込み関数がありません –