Comment exporter une base de données MySQL en JSON?

Je suis intéressé par l'exportation d'un sous-ensemble de valeurs à partir d'une base de données MySQL dans un fichier au format JSON sur le disque.

J'ai trouvé un lien qui parle d'un possible moyen de le faire: http://www.thomasfrank.se/mysql_to_json.html

... mais quand j'utilise la méthode de la page, il semble que le travail, mais avec deux problèmes:

1) Il ne revient autour de 15 résultats, avec le dernier brusquement coupé (incomplet). Ma requête standard pour cela renvoie aux alentours de 4000 résultats quand je viens de le lancer en tant qu' SELECT name, email FROM students WHERE enrolled IS NULL
Mais quand je le lance comme:

SELECT 
     CONCAT("[",
          GROUP_CONCAT(
               CONCAT("{name:'",name,"'"),
               CONCAT(",email:'",email,"'}")
          )
     ,"]") 
AS json FROM students WHERE enrolled IS NULL;

... comme décrit dans le lien, il retourne uniquement (comme je l'ai mentionné) 15 résultats. (fwiw, j'ai vérifié ces résultats avec les 4000 que je suis censé obtenir, et ces 15 sont les mêmes que les 15 premiers de l'4000)

2) Il semble y avoir de "s'échapper" les caractères inclus dans le fichier, quand j'ajoute INTO OUTFILE '/path/to/jsonoutput.txt' FIELDS TERMINATED BY ',' à la fin de la requête. Donc des virgules finir par ressembler à '\', alors évidemment, je voudrais juste avoir les virgules sans le \.

Aucune idée sur la façon d'obtenir une sortie JSON à partir de MySQL? (Soit à l'aide de cette méthode, ou une autre méthode)?

Merci!

  • Pour une coquille en fonction de la solution, vous pouvez exécuter votre requête et de sortie json à l'aide de jo, ou vous pourriez transférer votre sortie de la requête pour export-mysql-à-json.
InformationsquelleAutor mindthief | 2011-02-18