「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)

 

MySQL

Posted by arkgame