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でユーザー作成時にエラーが発生
SSHからrootアカウントでMySQLにログインし、ユーザーを作成しようとする ...
-
-
MySQLのREGEXPで半角記号を検索したい場合の対応方法
MySQLのREGEXPで半角記号を検索したい場合\\を付けてエスケープしないと ...
-
-
MySQLでWhere句をつけてdumpファイルを出力する方法
MySQLであるテーブルからWhere句をつけて、絞った結果をダンプさせたかった ...
-
-
MySQLで特定カラムの
タグを改行コードに一括置換させる方法MySQLで特定カラムの<br>タグを改行コードに一括置換したかった ...
-
-
ON DUPLICATE KEY UPDATE後にinsert_idを取得すると結果が0になる
MySQLでON DUPLICATE KEY UPDATE句指定し、データの登録 ...