如何使用简单的查询将 JSON 文件导入 MySQL 数据库,而不实际将其转换为任何其他文件格式(如 CSV 等)?

2023-12-02

我尝试导入一个 JSON 文件,如下所示:

[ 
{ 
"executionDateTime":"2017-07-07 15:21:15",
"A":1,
"B":1
},
{ 
"executionDateTime":"2017-07-07 15:21:15",
"A":2,
"B":2
},
{ 
"executionDateTime":"2017-07-07 15:21:15",
"A":3,
"B":3
},
{ 
"executionDateTime":"2017-07-07 15:21:15",
"A":4,
"B":4
}]

我想将上面的文件导入到 mySQL 数据库中,并且我希望我的表看起来像这样:

 executionDateTime           A               B

2017-07-07 15:21:15          1               1
2017-07-07 15:21:15          2               2
2017-07-07 15:21:15          3               3
2017-07-07 15:21:15          4               4

我已经尝试过下面的查询来执行此操作(如果文件格式是 CSV,这对我来说是可行的),但它不起作用。

LOAD DATA local INFILE '<path>/my_file.json' 
INTO TABLE database_name.my_table FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'LINES TERMINATED BY '\n' IGNORE 1 ROWS;

上面的查询给了我一个如下所示的表:

output_table

(我知道,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);

分割您的数据(这可以合并为一个命令)

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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用简单的查询将 JSON 文件导入 MySQL 数据库,而不实际将其转换为任何其他文件格式(如 CSV 等)? 的相关文章

  • 基于列顺序的查询速度

    数据库中列类型的顺序对查询时间有影响吗 例如 具有混合排序 INT TEXT VARCHAR INT TEXT 的表的查询速度是否会比具有连续类型 INT INT VARCHAR TEXT TEXT 的表慢 答案是肯定的 这确实很重要 而且
  • 使用 mysql2 gem 获取最后插入的 id

    我有这样的代码 require mysql2 db query insert into clients Name values client 我可以通过 1 个查询返回最后插入的 ID 吗 您可以使用last id客户端实例的方法 clie
  • 代码点火器 JSON

    你好 我使用 codeigniter 然后我从控制器中的数据库中回显输出 然后在我的视图文件中执行以下操作 但它没有显示任何内容 S 我的模型文件 function forumList this gt db gt select oversk
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 如何使用 PHP 从 MySQL 查询中按升序对值进行排序?

    我使用以下 PHP 脚本从 MySQL 表中获取和更改数据 并将结果打印在 HTML 表中 我希望按升序对数据进行排序 utilization percentage变量 它是由创建的 total client time total avai
  • 如何解析多态 JSON 数组?

    我有一个 JSON 格式的文件 其中包含个人用户的记录 一些用户的记录中间有一个评论字段 我只想解析顶级项目 全名 贡献者姓名 电子邮件 使用 Newtonsoft JSON 解析器 但我似乎无法让它识别单个对象 当我将整个字符串解析为一个
  • 更改Docker容器中的mysql密码

    我如何更改 docker 容器中的 root 密码 因为一旦我停止 mysql 服务 容器就会自动停止 我应该停止 mysql 容器并部署一个新容器吗 您可以使用正在运行的容器更改它docker exec session https doc
  • MySQL“选择更新”行为

    根据 MySql 文档 MySql 支持多粒度锁定 MGL case 1 开放航站楼 1 连接到mysql mysql gt start transaction Query OK 0 rows affected 0 00 sec mysql
  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • PMA 4.5.2.0 file_exists():open_basedir 限制生效

    从 PPA 在我的 Ubuntu 服务器上安装 phpMyAdmin 后 https launchpad net nijel archive ubuntu phpmyadmin https launchpad net nijel archi
  • Sql:计算随时间的增长

    我几周前发布了这个问题 但我认为我没有清楚地提出这个问题 因为我得到的答案不是我想要的 我认为最好重新开始 我正在尝试查询数据库以检索一段时间内唯一条目的数量 数据看起来像这样 Day UserID 1 A 1 B 2 B 3 A 4 B
  • Node.js - 异步 JSON 查询

    如果这是一个愚蠢的问题 我深表歉意 但我对 Javascript 很陌生 而 Node js 确实让我很头疼 因为它是异步的 我的目标是从 API 查询 JSON 对象并能够使用它 我试图寻找关于我应该做什么的问题和答案 但它们对我来说都没
  • PHP 的 PDO 可以限制为单个查询吗?

    PHP 的 PDO 允许通过 query 方法或作为准备好的语句同时执行多个查询 以下两个示例均有效 Two SQL queries query SELECT FROM table DROP table Execute via query
  • 将 JSON 反序列化为自定义列表

    我有这个 json var x 99 abc 2dp GroupNum 0 Total 4 1 7 x date 60 x 1dp GroupNum 1 存在以下规则 让i参考内部列表索引 x i 0 必填项 始终为整数 x i 1 必填项
  • 从 PDO 准备好的语句中获取原始 SQL 查询字符串

    在准备好的语句上调用 PDOStatement execute 时 有没有办法让原始 SQL 字符串执行 出于调试目的 这将非常有用 我假设您的意思是您想要最终的 SQL 查询 并将参数值插入其中 我知道这对于调试很有用 但这不是准备好的语
  • SQL Server 相当于 MySQL 的 USING

    在 MySQL 中 当您连接不同表中具有相同名称的列时 可以在连接中使用关键字 USING 例如 这些查询产生相同的结果 SELECT FROM user INNER JOIN perm USING uid SELECT FROM user
  • 如何按单个整数字段对 JSON 进行排序? [复制]

    这个问题在这里已经有答案了 我有以下 JSON title title order 0 order 9 order 2 JSON 包含很多字段 我如何根据字段对它们进行排序order field 我一直在寻找 Nodejs 中内置的东西 但
  • 如何将 yii2 Restful api 中两个表的关系数据显示为 json 格式

    我遇到了将两个表中的数据显示为 JSON 格式并在 yii2 Restful api 上工作的问题 这是我的结构数据库 TABLE volunteer volunteer id int 11 NOT NULL auto increment
  • 如何使用 PHP 获取列中的所有值?

    我一直在到处寻找这个问题 但仍然找不到解决方案 如何从 mySQL 列中获取所有值并将它们存储在数组中 例如 表名称 客户 列名称 ID 名称 行数 5 我想获取此表中所有 5 个名称的数组 我该如何去做呢 我正在使用 PHP 我试图 SE
  • 哪个是识别关系或非识别关系中的子表?

    在表之间的识别和非识别关系的上下文中 MySQL 文档大量将表称为父表和子表 如何判断哪个表是父表 哪个表是子表 子表 A K A 弱实体 http en wikipedia org wiki Weak entity 是一个表 其主键属性d

随机推荐

  • SwiftUI:访问 macOS 上的特定场景 ViewModel

    在这个简单的示例应用程序中 我有以下要求 有多个窗口 每个窗口都有自己的ViewModel 切换Toggle在一个窗口中应该not更新另一个窗口的 我还希望能够通过菜单切换 就目前而言 前两点是not鉴于 最后一点是有效的 我已经知道当我移
  • django heroku 媒体文件 404 错误

    我最近在 Heroku 上部署了一个 Django 应用程序 并上传了一些媒体文件 一切似乎都工作正常 直到昨天 当我尝试再次访问该应用程序时 发现它给出了 404 错误 有什么想法为什么会发生这种情况吗 设置 py import os B
  • ASP.Net 2012 使用 jQuery 进行非侵入式验证

    我正在使用 Visual Studio 2012 我创建了一个空 ASP Net Web 应用程序 当我尝试添加传统验证器控件到新页面 出现这个错误 WebForms UnobtrusiveValidationMode 需要 jquery
  • oracle sql在计数时不是按表达式分组[重复]

    这个问题在这里已经有答案了 我正在尝试运行以下查询来计算过去 6 个月内转诊患者的医生数量 SELECT count local doc providerno NumberofReferals LOCAL DOC FULLNAME FULL
  • Javascript 世界时区与 GMT 的时差计算器

    我希望有人能告诉我定期更新时区数据库的方向 我找到了一个 但抱歉我不记得它来自哪里 但是随着当前 GMT 时钟变化的快速临近 我担心我的所有数据都会不正确 即从英国到纽约的时差将从落后 5 小时变为 6 小时落后几个小时 任何有关此事的帮助
  • 包含相当于 SQL Server 中的 Like

    当我运行此查询时 Select from Table1 Where Column1 Like aaa 3 Result Select from Table1 Where Column1 Like a 3 Result Select from
  • PowerShell 的 ConvertFrom-SecureString -key 的安全性如何

    我有一个模块 其中包含一些带有一些私有数据的字符串 这些数据应该很难获得 但会经常更改 我需要将此脚本放在各种机器上 这些机器可能会访问它 并且代码可能会被不应该拥有用于导出输出的信息的人读取 我真的很担心不时变化的字符串 因此我正在考虑创
  • PyOpenGL 如何导入 obj 文件?

    import pygame import OpenGL from pygame locals import from OpenGL GL import from OpenGL GLU import import pywavefront sc
  • javascript highchart 照片幻灯片

    我正在使用 javascript 库 highchart 创建可视化图表 我用一些虚假数据创建了图表 我想知道如何使用图表数据触发图像幻灯片 因此 如果我将鼠标悬停在图表中某个点的数据上 相应的图像将水平滑动到页面中心 这是到目前为止我的一
  • 如何计算负数的平方根?

    我正在尝试使用以下代码从负数的平方根创建复数 include Math z Complex sqrt 9 但它会产生这个错误 Math DomainError Numerical argument is out of domain sqrt
  • 在 NetworkX 中重现相同的图

    我想改进我的图表 存在以下问题 如何创建一致的图 图本身并不一致 每次我执行 运行代码时 它都会生成不同的图像 不一致的图表显示在 url 中 如何自定义整个图表 图片的大小并使其更大 如何为对象 a 设置永久位置 以便它始终出现在第一个
  • 为登录 Facebook 的 Android 应用程序编写测试

    我的 Android 应用程序使用FacebookSDK用于登录 这是第一个屏幕 除非登录 否则您无法执行任何操作 我想写一些Espresso在 Greenhouse 持续集成服务器上运行的测试 我搜索了一下 发现 iOS 上有 FBSDK
  • 如何在 MVC 中创建通用视图模型?

    我想在 MVC 中使用视图模型而不是使用 viewbag 有没有一种方法可以创建一些在所有控制器之间共享的通用视图模型 然后在我的视图中使用它 为此我需要什么样的代码 我想也许在基本控制器中创建一些东西 那可能吗 我相信在控制器和视图之间传
  • 复制失败:stat /var/lib/docker/tmp/docker-builder076499369/files/nginx.conf:没有这样的文件或目录

    我正在运行以下版本的 docker ce Server Docker Engine Community Engine Version 18 09 5 API version 1 39 minimum version 1 12 Go vers
  • r devtools test() 错误,但测试 test_file() 是否有效

    我正在构建的包中有一个函数 它将十六进制代码分配给全局环境以供分析师使用 optiplum lt function assign x optiplum value rgb red 129 green 61 blue 114 maxColor
  • 按值传递 typedef(固定大小)数组

    我很难理解typedef数组的模式 typedef char Char10 10 void fun Char10 a not passing reference interested in pass by value if typeid C
  • 如何在bash中从html中提取td?

    我正在从 geonames 查询伦敦邮政编码数据 我想将输出转换为仅包含邮政编码标识符 Bethnal Green Islington 等 的列表 在 bash 中仅提取名称的最佳方法是什么 我不确定你是不是这个意思 n分隔列表 或用括号括
  • 如何获得闪烁的按钮? (两张交替的图片)

    我想要一个闪烁的按钮 实际上我的按钮看起来像这样 redButton setImage UIImage imageNamed Button1 png forState UIControlStateNormal redButton setIm
  • C - 对非 2 的幂的数字进行按位运算的算法

    我知道 2 的幂的模可以使用按位运算符计算 x 2 n x 2 n 1 但我想知道是否存在任何通用的按位算法来查找任何数字的模不是 2 的幂 例如 7 5 先感谢您 有几个 用于特殊情况 包括 5 个 由于 16 1 mod 5 您可以做的
  • 如何使用简单的查询将 JSON 文件导入 MySQL 数据库,而不实际将其转换为任何其他文件格式(如 CSV 等)?

    我尝试导入一个 JSON 文件 如下所示 executionDateTime 2017 07 07 15 21 15 A 1 B 1 executionDateTime 2017 07 07 15 21 15 A 2 B 2 executi