mysql で json の中のオブジェクトからその値を json 配列で取得する
Published: 2019/2/26
やりたいこと
mysql の json フィールドに json オブジェクトがあるとき、オブジェクトのキーは JSON_KEYS
で取得ができるが、
一方でオブジェクトの値(value)の一覧を json 配列で取得したいと思った。
やり方
-> '$.*'
を用いることで、これが実現可能。
クエリ例
with json_objs(json_col) as (
select CAST('{"key1": "value1", "key2": "value2"}' AS JSON)
UNION ALL
select CAST('{"key3": "value3", "key4": "value4"}' AS JSON)
)
select json_col->'$.*' from json_objs
実行結果
+----------------------+
| json_col->'$.*' |
+----------------------+
| ["value1", "value2"] |
| ["value3", "value4"] |
+----------------------+