Mysql group_concat не выводит целые данные
Я использую следующий запрос и используя функцию group_concat
. Однако время от времени данные в столбце answers
прерываются; то есть я не получаю все данные, в конце концов он просто отрублен.
Я подозреваю, что это может иметь какое-то отношение к типу данных... может ли он быть применен к более крупному типу данных? В настоящее время тип данных Other1
- text
select SiteName,
case
when group_concat(Other1) is not null
then group_concat( cast(Other1 AS BLOB))
when group_concat(Other1) is null
then 'No Response provided'
end
'answers'
from disparities_community_partnerships
where QuarterId=2
group by SiteName
Ответы
Ответ 1
http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat
Результат усекается до максимальной длины, которая задается системной переменной group_concat_max_len, которая имеет значение по умолчанию 1024. Значение может быть установлено выше, хотя эффективная максимальная длина возвращаемого значения ограничена значением max_allowed_packet. Синтаксис для изменения значения group_concat_max_len во время выполнения выглядит следующим образом: val - целое число без знака
SET [GLOBAL | SESSION] group_concat_max_len = val;
Ответ 2
Еще один пример Пример
Выполните такие действия
SET GLOBAL group_concat_max_len = 5555555;
select SiteName,
case
when group_concat(Other1) is not null
then group_concat( cast(Other1 AS BLOB))
when group_concat(Other1) is null
then 'No Response provided'
end
'answers'
from disparities_community_partnerships
where QuarterId=2
group by SiteName
Ответ 3
Задайте group_concat_max_len
перед запросом:
SET GLOBAL group_concat_max_len = 9999999;