sql >> データベース >  >> RDS >> Mysql

簡単なクエリを使用して、CSVなどの他のファイル形式に実際に変換せずにJSONファイルをMySQLデータベースにインポートするにはどうすればよいですか?

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

    これは古いスレッドですが、MySQL 5.7にはJSONタイプがあり、JSONをフィールドにインポートしてから、計算フィールドを使用してjsonを個別のフィールドに分割できます。大まかなコードは次のとおりです(テストされていません):

    JSONテストテーブルを作成します:

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

    JSONをJSONフィールドにインポートします:

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

    データを分割します(これは1つのコマンドに組み合わせることができます)

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

    追加のフィールドが必要ない場合は、次のようにjsondataフィールドにクエリを実行できます。

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


    1. MacOSがMySQLサーバーを起動できません

    2. MySQLでシーケンスを作成するにはどうすればよいですか?

    3. mySQL 5でテーブル上のすべての外部キー制約を一度に削除することは可能ですか?

    4. 並列統計再構築のサポートの改善