Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę zaimportować plik JSON do bazy danych MySQL, używając prostego zapytania, bez faktycznej konwersji go na inne formaty plików, takie jak CSV itp.?

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PDF utworzony za pomocą FPDF oraz jak zapisać i pobrać plik pdf

  2. Czy możemy wykonywać zapytania SQL w JQuery?

  3. Binarny zestaw znaków MySQL a zestaw znaków binarnych znaków

  4. Jak wykonać zapytanie o pola zawierające dany tekst w MySQL?

  5. 7 sposobów na znalezienie zduplikowanych wierszy, ignorując klucz podstawowy w MySQL