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でtext型カラムに入っている数値をint型としてソートする
MySQLでtext型として指定されているカラムがあり、その中には文字列であった ...
-
-
MySQLで検索した件数の取得
ページングとかで必要になる総件数について、 いつもググってしまっていたのでメモ。 ...
-
-
MySQLでユニークキーをはる
MySQLでseqとcodeみたいなものをあわせて ユニークキーをはりたかった。 ...
-
-
PHP / MySQLで2038年問題の対策
先日打ち合わせの際に「タイムスタンプを使ってユニークキーに云々~~」といったよう ...