Эй, администраторы баз данных и общие умные парни. У меня к тебе вопрос.JSON VIEW using GROUP_CONCAT вопрос
Мы используем MySQL VIEWs для форматирования наших данных в виде JSON при его возврате (как BLOB), что удобно (хотя и не особенно приятно по производительности, но мы уже это знаем).
Но, похоже, я не могу получить конкретный запрос, работающий прямо сейчас (каждая строка содержит NULL, когда она должна содержать созданный объект JSON со значениями нескольких JOIN).
Вот общая идея:
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
Кто-нибудь знает эту проблему здесь? Я что-то упускаю, чтобы сгруппировать? Он работал, когда я только делал 1 LEFT JOIN & GROUP_CONCAT, но теперь с несколькими JOINs/GROUP_CONCATs он испортил это.
Когда я перемещаю GROUP_CONCAT из поля «cool_json», они работают так, как ожидалось, но я хотел бы, чтобы мои данные были отформатированы как JSON, поэтому я могу декодировать его на стороне сервера или на стороне клиента за один шаг.
Вы пробовали выполнения этого запроса непосредственно в базу данных. Получаете ли вы какие-либо предупреждения в отчете о group_concat? group_concat может легко достигнуть своего естественного предела в 1024 символа. (Который может быть увеличен) – MindStalker
Я уже установил global group_concat_max_len = 8192; '(этого достаточно), но даже когда это происходит, он просто отключает текст (я получаю только« NULL'). (предположим, что это было раньше (испортить мой JSON) –
Возможный дубликат [Как создать json-формат с групповым concat mysql?] (http://stackoverflow.com/questions/12511933/how-create- json-format-with-group-concat-mysql) – e4c5