【问题标题】:Export mysql database / mysql tables in json format through command line OR PHP通过命令行或PHP以json格式导出mysql数据库/mysql表
【发布时间】:2016-10-18 08:01:33
【问题描述】:

我有很大的信息表。我想以 json 格式导出它以用于其他目的。我可以使用以下命令以 xml 格式导出。

mysql -u root -p --xml -e "SELECT * FROM db_name.tbl_name" > d:\export.xml

我尝试了类似下面的 json 格式。 mysql -u root -p --json -e "SELECT * FROM db_name.tbl_name" > d:\export.json

我收到了错误消息unknown option '--json'

PS:由于表格太大,我无法使用任何第三方应用程序,例如 PHPMyadmin / workbench / SQLyog。

如果您能帮我解决这个问题,我们将不胜感激。

【问题讨论】:

    标签: php mysql json


    【解决方案1】:

    mysql不能直接输出json格式

    所以你有两个选择:

    1. 在XML中导出使用一个工具将XML转换为JSON(当然是一个可以处理大表的工具)

    2. 编写一个小脚本(例如在 PHP 中)从数据库中获取数据并以 JSON 格式将其写入文件

    重要提示:

    如果您选择选项 nr. (2) 如果您有很多记录,您可能无法在单个“原子”步骤中加载整个表数据、转换为 JSON 并保存到文件。

    但是你可以把任务分成几个步骤。

    基本上,转换为 JSON 的表是一个对象数组,每个对象代表一条记录。

    1. 打开与数据库的连接

    2. 开始写入输出文件并通过写入左方括号[打开数组

    3. 执行您的查询以获取 n ( 1 SORT 表格 -ex.id- 并使用 LIMIT 子句)

    4. 使用json_econde 转换每条记录,将字符串写入文件,写入逗号,,除非您已写入最后一条记录。

    5. 返回3,直到到达最后一条记录。

    6. 将右方括号写入文件](关闭数组)。

    7. 关闭文件和数据库连接

    这需要更多的编码,但这不是火箭科学。

    ...也许你在网上找到了已经这样做的东西。

    更新:

    可以在 GitHub 上找到从数据库中获取数据并将其写入 JSON 文件的脚本:Dump-table-to-JSON(最后更新于 2016 年)。

    【讨论】:

    • 我会写PHP脚本。但是数据量太大了。所以脚本无法完成这个过程。
    • 非常感谢您的详细解答。如果我没有找到任何其他选择,我会选择你的答案。
    • @Naga 查看我的更新以获取从数据库中获取数据并以 JSON 格式写入文件的即用型脚本
    【解决方案2】:

    您可以使用 Mysql Shell 直接输出到 JSON。

    echo "[Your SQL query]" | mysqlsh --sql --result-format=json --uri=[username]@localhost/[schema_name] 
    

    【讨论】:

      猜你喜欢
      • 2020-11-15
      • 2021-08-04
      • 2013-12-22
      • 2015-03-14
      • 2012-12-12
      • 2011-01-12
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多