GROUP_CONCAT() mysql returns 限定字数
GROUP_CONCAT() mysql returns limited characters
我要两张桌子
tblColorLibrary
id name
1 test color
tblColors
id libraryId colorCode name
1 1 #fff Prime Color
2 1 #ddd Secondry Color
3 1 #E2CFC7 Favorite Color
下面是我的查询:
$stmt ="SELECT a.id, a.isActive as isActive, a.name as title, GROUP_CONCAT(b.colorCode ) as colors, GROUP_CONCAT(b.name) as name FROM ".$this->tblLibrary." as a JOIN tblcolors as b ON a.id = b.libraryId GROUP BY a.id ORDER BY b.id ASC";
此查询将 return 结果如下
Array
(
[0] => Array
(
[id] => 1
[isActive] => Y
[title] => test
[colors] => #fff,#ddd,#E2CFC7
[name] => Prime Color, Secondry Color, Favorite Color
)
)
一切顺利,直到我的记录有限。当我在 tblColors 中有超过 150 条记录时,名称键只提供有限数量的字符。没有得到完整的记录。
估计group concat会有限制。
增加 group_concat_max_len 在 mysql 数据库。默认情况下它设置为 1024。您可以使用 query
更新它
SET GLOBAL group_concat_max_len=100000
和
SET SESSION group_concat_max_len = 1000000;
检查 group_concat_max_len 的值并根据需要增加它。
show variables like 'group_concat_max_len';
我要两张桌子
tblColorLibrary
id name
1 test color
tblColors
id libraryId colorCode name
1 1 #fff Prime Color
2 1 #ddd Secondry Color
3 1 #E2CFC7 Favorite Color
下面是我的查询:
$stmt ="SELECT a.id, a.isActive as isActive, a.name as title, GROUP_CONCAT(b.colorCode ) as colors, GROUP_CONCAT(b.name) as name FROM ".$this->tblLibrary." as a JOIN tblcolors as b ON a.id = b.libraryId GROUP BY a.id ORDER BY b.id ASC";
此查询将 return 结果如下
Array
(
[0] => Array
(
[id] => 1
[isActive] => Y
[title] => test
[colors] => #fff,#ddd,#E2CFC7
[name] => Prime Color, Secondry Color, Favorite Color
)
)
一切顺利,直到我的记录有限。当我在 tblColors 中有超过 150 条记录时,名称键只提供有限数量的字符。没有得到完整的记录。
估计group concat会有限制。
增加 group_concat_max_len 在 mysql 数据库。默认情况下它设置为 1024。您可以使用 query
更新它SET GLOBAL group_concat_max_len=100000
和
SET SESSION group_concat_max_len = 1000000;
检查 group_concat_max_len 的值并根据需要增加它。
show variables like 'group_concat_max_len';