sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg importere en JSON-fil til MySQL-databasen ved hjælp af en simpel forespørgsel, uden faktisk at konvertere den til andre filformater som CSV osv.?

Reference:https://dev.mysql.com /doc/refman/5.7/da/json-search-functions.html

Jeg ved godt, at dette er en ældre tråd, men MySQL 5.7 har nu en JSON-type, hvor du kan importere JSON til et felt, så kan du bruge beregnede felter til at opdele json i separate felter. Her er en grov kode (ikke testet):

Opret en JSON-testtabel:

CREATE TABLE IF NOT EXISTS jsontest(
     rowid INT AUTO_INCREMENT NOT NULL UNIQUE,
     jsondata json,
     `executionDateTime` TIMESTAMP,
     `A` BIGINT UNSIGNED,
     `B` BIGINT UNSIGNED,
     );

Importer din JSON til JSON-feltet:

LOAD DATA LOCAL INFILE '/path/to/testfile.json' into table jsontest(jsondata);

Del dine data op (dette kan kombineres til en enkelt kommando)

UPDATE jsontest set executionDateTime=(jsondata->>'$.executionDateTime');
UPDATE jsontest set A=(jsondata->>'$.A');
UPDATE jsontest set B=(jsondata->>'$.B');

Hvis du ikke vil have ekstra felter, kan du forespørge i jsondata-feltet sådan her:

SELECT jsondata->>"$.executionDateTime" AS executionDateTime,
       jsondata->>"$.A" AS A,
       jsondata->>"$.B" AS B;


  1. Hvordan udfører man en SQLite-forespørgsel i en Android-applikation?

  2. Hurtige tips til reparation og gendannelse af SQL-database uden sikkerhedskopiering

  3. Hvilke ressourcer findes der til justering af databasens ydeevne?

  4. auto_increment efter gruppe