「MySQL 8.0.29」パス指定でJSON型のデータを抽出する
環境
Ubuntu 22.04 LTS
MySQL 8.0.29-0ubuntu0.22.04.2
書式
SELECT `col`->"$.name" FROM テーブル名;
オブジェクトの場合 ->"$.key" の形式でjsonデータを抽出します。
リストの場合 ->"$[]" の形式でjsonデータを抽出します
使用例1
SQL構文
SELECT `col`->"$.name" FROM `json_userstbl`;
実行結果
mysql> SELECT `col`->"$.name" FROM `json_userstbl`; +-----------------+ | `col`->"$.name" | +-----------------+ | "user11" | | "user22" | | "user33" | +-----------------+ 3 rows in set (0.07 sec)
使用例2
書式
SELECT JSON_UNQUOTE(`col`->"$.name") FROM `テーブル名`
JSON_UNQUOTE関数 を利用して、ダブルクォートを取り除きます。
実行結果
mysql> SELECT JSON_UNQUOTE(`col`->"$.name") FROM `json_userstbl`; +-------------------------------+ | JSON_UNQUOTE(`col`->"$.name") | +-------------------------------+ | user11 | | user22 | | user33 | +-------------------------------+ 3 rows in set (0.02 sec)