Memo

メモ > 技術 > データベース: MySQL > データをJSONで扱う

■データをJSONで扱う
MySQLでJSONカラムを利用する(備忘録) https://www.usagi1975.com/202101220843/
CREATE TABLE json_test( id INT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID', text JSON NOT NULL COMMENT 'JSONデータ', PRIMARY KEY(id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT 'JSONデータ操作テスト'; INSERT INTO json_test VALUES(NULL, '{"number": 1,"code": "AAA","title": "テストメッセージ1","completed": true}'); INSERT INTO json_test VALUES(NULL, '{"number": 2,"code": "BBB","title": "テストメッセージ2","completed": false}'); SELECT * FROM json_test;
このとき、以下のように JSON_EXTRACT を使用するとJSONの各値を参照できる 検索条件としても使用できる
SELECT id, text, JSON_EXTRACT(text, '$.number') AS number, JSON_EXTRACT(text, '$.code') AS code, JSON_EXTRACT(text, '$.title') AS title, JSON_EXTRACT(text, '$.completed') AS completed FROM json_test ;
■「->」で指定する MySQLでJSONを扱う - Qiita https://qiita.com/abcb2/items/8affae03caa3e94068b5 MySQLでJSON型を使う(JSON関数編) | スマートスタイル TECH BLOG|データベース&クラウドの最新技術情報を配信 https://www.s-style.co.jp/blog/2019/03/3614/ もう知ってた? MySQL 5.7でNoSQLっぽくJSONデータを扱う方法 - WPJ https://www.webprofessional.jp/use-json-data-fields-mysql-databases/ MySQLでJSON型を使う(パフォーマンス編) | スマートスタイル TECH BLOG|データベース&クラウドの最新技術情報を配信 https://www.s-style.co.jp/blog/2017/06/420/ 「->」は JSON_EXTRACT のエイリアスとなっているらしいが、XAMPP環境(10.4.13-MariaDB)で試してもエラーになった バージョンに依存するのかも?要調査
SELECT id, text, text->"$.number" AS number, text->"$.code" AS code, text->"$.title" AS title, text->"$.completed" AS completed FROM json_test ;

Advertisement