Odniesienie:https://dev.mysql.com /doc/refman/5.7/en/json-search-functions.html
Wiem, że to starszy wątek, ale MySQL 5.7 ma teraz typ JSON, w którym można zaimportować JSON do pola, a następnie użyć pól obliczeniowych, aby podzielić JSON na oddzielne pola. Oto przybliżony kod (nie testowany):
Utwórz tabelę testową JSON:
CREATE TABLE IF NOT EXISTS jsontest(
rowid INT AUTO_INCREMENT NOT NULL UNIQUE,
jsondata json,
`executionDateTime` TIMESTAMP,
`A` BIGINT UNSIGNED,
`B` BIGINT UNSIGNED,
);
Zaimportuj swój JSON do pola JSON:
LOAD DATA LOCAL INFILE '/path/to/testfile.json' into table jsontest(jsondata);
Podziel swoje dane (można to połączyć w jedno polecenie)
UPDATE jsontest set executionDateTime=(jsondata->>'$.executionDateTime');
UPDATE jsontest set A=(jsondata->>'$.A');
UPDATE jsontest set B=(jsondata->>'$.B');
Jeśli nie chcesz mieć dodatkowych pól, możesz zapytać o pole jsondata w ten sposób:
SELECT jsondata->>"$.executionDateTime" AS executionDateTime,
jsondata->>"$.A" AS A,
jsondata->>"$.B" AS B;