sql >> Databáze >  >> RDS >> Mysql

Jak mohu importovat soubor JSON do databáze MySQL pomocí jednoduchého dotazu, aniž bych jej ve skutečnosti převedl do jiných formátů souborů, jako je CSV atd.?

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;


  1. MySQL změnit sloupec tabulky

  2. Ukončení podpory Salesforce TLS 1.0

  3. Nelze vytvořit PoolableConnectionFactory (Přístup odepřen uživateli ''@'localhost'

  4. Mám zakázat přísný režim MySQL?