1. ホーム
  2. mysql

MySQLで結果テーブルをJSON配列に変換する方法

2023-09-12 04:41:04

質問

MySQL で結果テーブルを JSON 配列に変換したいのですが、できれば単純な MySQL コマンドのみを使用したいです。たとえば、クエリで

SELECT name, phone FROM person;

| name | phone |
| Jack | 12345 |
| John | 23455 |

とすると、期待されるJSONの出力は次のようになります。

[
  {
    "name": "Jack",
    "phone": 12345
  },
  {
    "name": "John",
    "phone": 23455
  }
]

素のMySQLでそのようなことをする方法はあるのでしょうか?

EDITです。

などで行う方法については、いくつかの回答があります。 MySQLとPHP しかし、私は純粋な MySQL ソリューションを見つけることができませんでした。

どのように解決するのですか?

新しい解決方法です。

あなたの素晴らしいコメントを使って構築されました、ありがとうございます

SELECT JSON_ARRAYAGG(JSON_OBJECT('name', name, 'phone', phone)) from Person;


古い解決策です。

Schwern の助けを借りて、このクエリを実行することができました。

SELECT CONCAT(
    '[', 
    GROUP_CONCAT(JSON_OBJECT('name', name, 'phone', phone)),
    ']'
) 
FROM person;