参照: https://dev.mysql.com /doc/refman/5.7/en/json-search-functions.html
これは古いスレッドですが、MySQL 5.7にはJSONタイプがあり、JSONをフィールドにインポートしてから、計算フィールドを使用してjsonを個別のフィールドに分割できます。大まかなコードは次のとおりです(テストされていません):
JSONテストテーブルを作成します:
CREATE TABLE IF NOT EXISTS jsontest(
rowid INT AUTO_INCREMENT NOT NULL UNIQUE,
jsondata json,
`executionDateTime` TIMESTAMP,
`A` BIGINT UNSIGNED,
`B` BIGINT UNSIGNED,
);
JSONをJSONフィールドにインポートします:
LOAD DATA LOCAL INFILE '/path/to/testfile.json' into table jsontest(jsondata);
データを分割します(これは1つのコマンドに組み合わせることができます)
UPDATE jsontest set executionDateTime=(jsondata->>'$.executionDateTime');
UPDATE jsontest set A=(jsondata->>'$.A');
UPDATE jsontest set B=(jsondata->>'$.B');
追加のフィールドが必要ない場合は、次のようにjsondataフィールドにクエリを実行できます。
SELECT jsondata->>"$.executionDateTime" AS executionDateTime,
jsondata->>"$.A" AS A,
jsondata->>"$.B" AS B;