web-dev-qa-db-ja.com

MySQLクエリを使用してJSONオブジェクトを作成および挿入する方法

JSONオブジェクトを作成してから、その値をMySQLテーブルに読み取ろうとしています。しかし、私はエラーに直面しており、JSONとMySQLの両方に不慣れです。

SET @j = '{"key1": "value1", "key2": "value2"}';
CREATE TABLE Person (name int,id int);
INSERT INTO Person (name,id) SELECT * FROM OPENJSON(@j) WITH (name int,id int);
8
rj_23495

テーブルの作成時に、フィールドを[〜#〜] json [〜#〜]データ型として設定します。

CREATE TABLE `person` (
  `name` json DEFAULT NULL
);

そして、それにJSONデータを挿入し、

INSERT INTO `person` (`name`)
VALUES ('["name1", "name2", "name3"]');

またはKey:ValueでJSONデータを挿入します

INSERT INTO person VALUES ('{"pid": 101, "name": "name1"}');
INSERT INTO person VALUES ('{"pid": 102, "name": "name2"}');

JSONデータを選択し、

SELECT * FROM `person` WHERE JSON_CONTAINS(name, '["name1"]');

注:MySQL 5.7 InnoDB以降のバージョンのみがサポートされます

11
saravanabawa