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

通过命令行或PHP以json格式导出mysql数据库/mysql表,php,mysql,json,Php,Mysql,Json,我有一张很大的信息表。我想将其导出为json格式以用于其他目的。我可以使用下面的命令以xml格式导出 mysql-u root-p--xml-e“从db_name.tbl_name中选择*”>d:\export.xml 对于json格式,我尝试了以下类似的方法。 mysql-u root-p--json-e“从db_name.tbl_name中选择*”>d:\export.json 我收到了错误消息unknown option'--json' PS:由于表太大,我无法使用任何第三方应用程序,如P

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

mysql-u root-p--xml-e“从db_name.tbl_name中选择*”>d:\export.xml

对于json格式,我尝试了以下类似的方法。
mysql-u root-p--json-e“从db_name.tbl_name中选择*”>d:\export.json

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

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


如果您能在这方面帮助我,我们将不胜感激。

mysql无法直接以json格式输出

所以你有两个选择:

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

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

重要提示:

如果选择选项nr.(2),如果有大量记录,则在加载整个表数据、转换为JSON并在单个“原子”步骤中保存到文件时可能会遇到问题

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

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

  • 打开与数据库的连接

  • 开始写入输出文件,并通过写入一个开放的方括号来打开数组
    [

  • 每次执行查询获取n(1排序,例如
    id
    ,并使用
    限制
    子句)

  • 使用
    json\u econde
    转换每条记录,将字符串写入文件,写入逗号
    ,除非已写入最后一条记录

  • 返回到3,直到达到最后一条记录

  • 将结束方括号写入文件
    ]
    (结束数组)

  • 关闭文件和数据库连接

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

    …也许你会在网上找到一些已经做到这一点的东西

    更新:


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

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

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

    我会写PHP脚本。但是数据量太大了。因此脚本无法完成此过程。非常感谢您的详细回答。如果我没有找到任何其他选项,我将使用您的答案。@Naga请参阅我的更新,以获取从数据库获取数据并以JSON格式写入文件的现成脚本