MySQLに保存したデータをJSON形式で取得する方法
MySQLに保存したデータをJSON形式で利用したいということがたまにある(JavaScript側でそのデータを使いたい時とか)。そのような場合はPHPのjson_encode関数でJSON形式に変換していた。ただSQL文で直接JSON形式指定できるらしい。以下に方法をメモ。
テーブル内容
+----+-----------+-----+---------------------+ | id | name | age | regist | +----+-----------+-----+---------------------+ | 1 | 田中 | 20 | 2023-02-13 16:16:01 | | 2 | 鈴木 | 30 | 2023-02-13 16:16:24 | | 3 | 佐々木 | 40 | 2023-02-13 16:16:33 | +----+-----------+-----+---------------------+
SQL文
SELECT
JSON_PRETTY(
JSON_OBJECTAGG(
id,
JSON_OBJECT(
'name', name,
'age', age,
'regist', regist
)
)
) AS reslut
FROM json_test;
以下が結果になる。
{
"1": {
"age": 20,
"name": "田中",
"regist": "2023-02-13 16:16:01.000000"
},
"2": {
"age": 30,
"name": "鈴木",
"regist": "2023-02-13 16:16:24.000000"
},
"3": {
"age": 40,
"name": "佐々木",
"regist": "2023-02-13 16:16:33.000000"
}
}
所感
使いどころは限られそうだけど引き出しとして覚えておく。
参考サイト
https://www.wakuwakubank.com/posts/872-mysql-aggregate-json/
関連記事
-
-
MySQLでホスト指定しても正常に接続できない場合
MySQL自体は動いており、ユーザーも登録されているのに、ホスト名を指定しても正 ...
-
-
MySQLのクエリキャッシュの設定方法
MySQLでのクエリキャッシュ設定及び設定項目について以下にメモ。 ...
-
-
SortableJSを使ってデータの並べ替え&保存
あるシステムを拝見した際にtableタグ内に並んでいる項目をドラッグ&ド ...
-
-
phpmyadminからプロセスの停止
重たいSQL文を叩いた際、どうにも処理できず メモリ使用率が100%から下がらな ...
-
-
MySQLで同一サーバーの異なるDB内のテーブルをJOINする
同一のMySQLサーバーでdb1データベースのtable1テーブルと、db2デー ...