我有大信息表。我想以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。
如果你帮助我,我将不胜感激。
答案 0 :(得分:2)
mysql无法直接以json格式输出
所以你有两个选择:
1)在XML中导出使用工具从XML转换为JSON(当然可以处理大型表的工具)
2)编写一个小脚本(例如在PHP中),从DB中获取数据并将其写入JSON文件
重要提示:
如果您选择选项nr。 (2)如果您有大量记录,您可能无法加载整个表数据,转换为JSON并在单个“原子”步骤中保存到文件。
但是,您可以将任务分解为步骤。
基本上,变成JSON的表是一个对象数组,每个对象代表一个记录。
打开与db的连接
开始编写输出文件并通过打开方括号[
执行您的查询,同时获取 n (1< n< 1000)记录。 (为了做到这一点,你必须通过任何字段SORT
来id
表 - 并使用LIMIT
子句
使用json_econde
转换每个记录,将字符串写入文件,写一个逗号,
,除非您已写入最后一条记录。
返回 3 ,直至到达最后一条记录。
将结束方括号写入文件]
(关闭数组)。
关闭文件和数据库连接
这需要更多的编码,但这不是火箭科学。
......也许你在网上找到了已经做到的东西。
<强>更新强>
可以在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]