最近在用mysql的group_concat()函數(shù)做多渠道樹(shù)形結(jié)構(gòu)查詢(xún),發(fā)現(xiàn)獲取的渠道id不全
查來(lái)查去終于發(fā)現(xiàn)了一個(gè)巨坑,那就是group_concat()有長(zhǎng)度限制1024。
解決方法一:
windows下在my.ini加上group_concat_max_len = 102400 //自己設(shè)置的值
linux在mysql.cof中加上group_concat_max_len =102400 //自己設(shè)置的值
linux或者在my.cnf中加入如下
[mysqld]
group_concat_max_len = 4294967295(也可以為-1最大值)
重啟mysql服務(wù),完美解決,
注,如果你的mysql安裝目錄下沒(méi)有my.ini,那么你就自己創(chuàng)建一個(gè),找找網(wǎng)上的配置文件只用加入:
group_concat_max_len = 4294967295
解決方法二:(不推薦,因?yàn)閿?shù)據(jù)庫(kù)重啟后長(zhǎng)度會(huì)重新變回1024)
//查看當(dāng)前數(shù)據(jù)庫(kù)的groupconcat長(zhǎng)度
SHOW VARIABLES LIKE 'group_concat_max_len';
//執(zhí)行以下語(yǔ)句修改成自己想要的長(zhǎng)度
SET GLOBAL group_concat_max_len = 102400;
SET SESSION group_concat_max_len = 102400;