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でスレッドの実行状況を表示しスレッドの経過時間チェックや特定スレッドを強制終了する方法
データベースサーバが重たく、原因を調査する機会があった。サーバ自体のメモリやCP ...
-
-
お名前.comのレンタルサーバ(SDサーバ)にMySQLデータのインポートする方法
お名前.comのレンタルサーバにそこそこ大きいサイズのMySQLデータを移行した ...
-
-
さくらインターネットでCronからmysqldumpすると0バイトのファイルが生成される
さくらインターネットのレンタルサーバでmysqldumpした結果をファイルとして ...
-
-
MySQLにてSELECT時にdate型のカラムから和暦を計算し表示する方法
MySQLにdate型のカラムに誕生年月日が格納されており、そこから和暦を計算し ...