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"] |
+----------------------+

Tags: mysql

About

エンジニアです。 仕事では Xincere Residence を作っています。 このサイトは個人のブログであり、所属団体の意見等とは関係がありません。

Tags