Reference:https://dev.mysql.com /doc/refman/5.7/en/json-search-functions.html
Vím, že se jedná o starší vlákno, ale MySQL 5.7 má nyní typ JSON, kde můžete importovat JSON do pole, pak můžete použít vypočítaná pole k rozdělení json do samostatných polí. Zde je hrubý kód (netestováno):
Vytvořte testovací tabulku JSON:
CREATE TABLE IF NOT EXISTS jsontest(
rowid INT AUTO_INCREMENT NOT NULL UNIQUE,
jsondata json,
`executionDateTime` TIMESTAMP,
`A` BIGINT UNSIGNED,
`B` BIGINT UNSIGNED,
);
Importujte svůj JSON do pole JSON:
LOAD DATA LOCAL INFILE '/path/to/testfile.json' into table jsontest(jsondata);
Rozdělte svá data (toto může být spojeno do jediného příkazu)
UPDATE jsontest set executionDateTime=(jsondata->>'$.executionDateTime');
UPDATE jsontest set A=(jsondata->>'$.A');
UPDATE jsontest set B=(jsondata->>'$.B');
Pokud nechcete mít další pole, můžete pole jsondata zadat takto:
SELECT jsondata->>"$.executionDateTime" AS executionDateTime,
jsondata->>"$.A" AS A,
jsondata->>"$.B" AS B;