Hey et CBM mecs intelligents ensemble. J'ai une question pour vous. Nous utilisons MySQL VIEWs pour formater nos données en JSON quand il est retourné (en tant que BLOB), ce qui est pratique (mais pas particulièrement agréable sur les performances, mais nous le savons déjà).JSON VIEW en utilisant la question GROUP_CONCAT
Mais, je ne peux pas sembler obtenir une requête particulière de travail en ce moment (chaque ligne contient NULL quand il doit contenir un objet JSON créé avec les valeurs de multiples JOIN).
Voici l'idée générale:
SELECT CONCAT(
"{",
"\"some_list\":[", GROUP_CONCAT(DISTINCT t1.id), "],",
"\"other_list\":[", GROUP_CONCAT(DISTINCT t2.id), "],",
"}"
) cool_json
FROM table_name tn
INNER JOIN (some_table st) ON st.some_id = tn.id
LEFT JOIN (another_table at, another_one ao, used_multiple_times t1 )
ON st.id = at.some_id AND
at.different_id = ao.different_id AND
ao.different_id = t1.id
LEFT JOIN (another_table2 at2, another_one2 ao2, used_multiple_times t2 )
ON st.id = at2.some_id AND
at2.different_id = ao2.different_id AND
ao2.different_id = t2.id
GROUP BY tn.id ORDER BY tn.name
Tout le monde connaît le problème ici? Ai-je manqué quelque chose que je devrais regrouper? Cela fonctionnait quand je ne faisais que 1 LEFT JOIN & GROUP_CONCAT, mais maintenant avec plusieurs JOINs/GROUP_CONCATs ça gâche. Lorsque je déplace les GROUP_CONCAT du champ "cool_json", ils fonctionnent comme prévu, mais je souhaite que mes données soient formatées en JSON afin que je puisse les décoder côté serveur ou client en une seule étape.
Avez-vous essayé d'exécuter cette requête directement dans la base de données. Avez-vous des avertissements dans la sortie à propos de group_concat? group_concat peut facilement atteindre sa limite naturelle de 1024 caractères. (Qui peut être augmentée) – MindStalker
je l'ai déjà 'set group_concat_max_len global = 8192;' (ce qui est suffisant), mais même quand cela arrive, il coupe juste à côté du texte (je n'obtenir 'null'). bonne estimation, cependant, qui a été la question avant (déconner mon JSON) –
en double possible de [Comment créer le format JSON avec le groupe-concat MySQL?] (http://stackoverflow.com/questions/12511933/how-create- JSON format avec groupe-concat-mysql) – e4c5