Mysql group_concat字符长度限制

语句如下:

SELECT
`a`.`ID` AS `ID`,
`a`.`Category_Name` AS `Category_Name`,
concat(
'[',
group_concat(
'{"DrugId":"',
`b`.`ID`,
'", "DrugName":"',
`b`.`Drug_Name`,
'"}' SEPARATOR ','
),
']'
) AS `Drug_Data`
FROM
(
`drug_category` `a`
LEFT JOIN `drug` `b` ON (
(`a`.`ID` = `b`.`Category_ID`)
)
)
WHERE
(
(`a`.`Is_Deleted` = 0)
AND (`b`.`Is_Deleted` = 0)
)
GROUP BY
`a`.`ID`

执行后返回到程序中,发现字段[Drug_Data]被截断,本来以为是NHibernate中映射文件字段长度的问题,但是改了之后发现没有作用,查询资料,发现group_concat函数返回的字符长度是有限制的,解决方案就是在MySql配置文件my.ini中加上 group_concat_max_len = 200000 改大就行了。

 

Mysql group_concat字符长度限制

或者执行 

SET GLOBAL group_concat_max_len = 200000;

SET SESSION group_concat_max_len = 200000;