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/
関連記事
-
mysqldumpが使えないレンタルサーバでMySQLのバックアップ
mysqldumpが使えないレンタルサーバで開発を行うことがあり、尚且つ他社に使 ...
-
PHPでmysqli関数使用時のプリペアドステートメントの利用方法
PHPでMySQLを扱う際はmysqli関数を、エスケープの際はreal_esc ...
-
MySQLのTEMPORARY TABLE(テンポラリテーブル)で高速化を図る方法
MySQLで5000万件ぐらいデータが入っているテーブルから日本語検索しないとい ...
-
MySQLでテーブル構造とデータをコピーする方法
MySQLで既にあるテーブルとデータに対して実験を行う必要があった。本番テーブル ...
-
ON DUPLICATE KEY UPDATE後にinsert_idを取得すると結果が0になる
MySQLでON DUPLICATE KEY UPDATE句指定し、データの登録 ...