【发布时间】:2011-06-29 12:38:13
【问题描述】:
我有兴趣将 MySQL 数据库中的值子集导出到磁盘上的 JSON 格式文件中。
我找到了一个链接,讨论了一种可能的方法:http://www.thomasfrank.se/mysql_to_json.html
...但是当我使用该页面中的方法时,它似乎可以工作,但有两个问题:
1) 它只返回大约 15 个结果,最后一个被突然切断(不完整)。当我以SELECT name, email FROM students WHERE enrolled IS NULL 运行它时,我的标准查询返回大约 4000 个结果
但是当我运行它时:
SELECT
CONCAT("[",
GROUP_CONCAT(
CONCAT("{name:'",name,"'"),
CONCAT(",email:'",email,"'}")
)
,"]")
AS json FROM students WHERE enrolled IS NULL;
... 如链接中所述,它仅返回(如我所述)15 个结果。 (fwiw,我根据我应该得到的 4000 检查了这些结果,这 15 个与 4000 的前 15 个相同)
2) 当我将INTO OUTFILE '/path/to/jsonoutput.txt' FIELDS TERMINATED BY ',' 添加到该查询的末尾时,实际文件中似乎包含“转义”字符。所以逗号最终看起来像 '\,' 显然我只想让逗号没有 \。
关于如何从 MySQL 获取正确的 JSON 输出的任何想法? (使用这种方法,还是其他方法)?
谢谢!
【问题讨论】:
-
对于基于 shell 的解决方案,您可以使用 jo 运行查询并输出 json,或者您可以将查询输出通过管道传输到 export-mysql-to-json。