通过命令行或PHP以json格式导出mysql数据库/ mysql表

时间:2016-10-18 08:01:33

标签: php mysql json

我有大信息表。我想以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。

如果你帮助我,我将不胜感激。

2 个答案:

答案 0 :(得分:2)

mysql无法直接以json格式输出

所以你有两个选择:

1)在XML中导出使用工具从XML转换为JSON(当然可以处理大型表的工具)

2)编写一个小脚本(例如在PHP中),从DB中获取数据并将其写入JSON文件

重要提示:

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

但是,您可以将任务分解为步骤。

基本上,变成JSON的表是一个对象数组,每个对象代表一个记录。

  1. 打开与db的连接

  2. 开始编写输出文件并通过打开方括号[

  3. 打开数组
  4. 执行您的查询,同时获取 n (1< n< 1000)记录。 (为了做到这一点,你必须通过任何字段SORTid表 - 并使用LIMIT子句

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

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

  7. 将结束方括号写入文件](关闭数组)。

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

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

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

    <强>更新

    可以在GitHub上找到从数据库获取数据并将其写入JSON文件的脚本:Dump-table-to-JSON

答案 1 :(得分:0)

您可以使用Mysql Shell直接将其放到JSON中。

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