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
;