sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo importar un archivo JSON a la base de datos MySQL, usando una consulta simple, sin convertirlo realmente a ningún otro formato de archivo como CSV, etc.?

Referencia:https://dev.mysql.com /doc/refman/5.7/en/json-search-functions.html

Sé que este es un hilo más antiguo, pero MySQL 5.7 ahora tiene un tipo JSON donde puede importar JSON en un campo, luego puede usar campos calculados para dividir el json en campos separados. Aquí hay un código aproximado (no probado):

Cree una tabla de prueba JSON:

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

Importe su JSON en el campo JSON:

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

Divida sus datos (esto podría combinarse en un solo comando)

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

Si no desea tener campos adicionales, puede consultar el campo jsondata de esta manera:

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