Estoy interesado en exportar un subconjunto de valores de una base de datos MySQL a un archivo con formato JSON en el disco.¿Cómo exportar una base de datos MySQL a JSON?
He encontrado un enlace que habla de una posible manera de hacer esto: http://www.thomasfrank.se/mysql_to_json.html
... pero cuando se utiliza el método de esa página, parece que funciona pero con dos problemas:
1) Solo devuelve alrededor de 15 resultados, y el último se interrumpe abruptamente (incompleto). Mi consulta estándar para este regresa alrededor de 4000 resultados cuando lo ejecutas como SELECT name, email FROM students WHERE enrolled IS NULL
Pero cuando corro como:
SELECT
CONCAT("[",
GROUP_CONCAT(
CONCAT("{name:'",name,"'"),
CONCAT(",email:'",email,"'}")
)
,"]")
AS json FROM students WHERE enrolled IS NULL;
... como se describe en el enlace, sólo se devuelve (como he mencionado) 15 resultados . (fwiw, verifiqué estos resultados contra los 4000 que se supone que tengo, y estos 15 son los mismos que los primeros 15 de los 4000)
2) Parece que hay caracteres de "escape" incluidos en el archivo real cuando agregue INTO OUTFILE '/path/to/jsonoutput.txt' FIELDS TERMINATED BY ','
al final de esa consulta. Así que las comas terminan pareciendo '\,' cuando obviamente me gustaría tener las comas sin el \.
¿Alguna idea sobre cómo obtener una salida JSON adecuada de MySQL? (¿Ya sea usando este método, o algún otro método)?
Gracias!
Para una solución basada en shell, puede ejecutar su consulta y generar json usando [jo] (https://github.com/jpmens/jo), o puede canalizar su salida de consulta a [export-mysql-to-json] (https://github.com/Sufi-Al-Hussaini/export-mysql-to-json). –