【发布时间】:2015-04-07 08:22:24
【问题描述】:
我要两张桌子
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";
这个查询会返回这样的结果
Array
(
[0] => Array
(
[id] => 1
[isActive] => Y
[title] => test
[colors] => #fff,#ddd,#E2CFC7
[name] => Prime Color, Secondry Color, Favorite Color
)
)
在我的记录有限之前一切都很好。当我在 tblColors 中有超过 150 条记录时,名称键只提供有限数量的字符。没有得到完整的记录。
我想组连接会有限制。
【问题讨论】:
-
GROUP_CONCAT的最大长度约为 1024。您可以通过服务器变量进行更改。见这里:stackoverflow.com/questions/2567000/… -
检查
group_concat_max_lendev.mysql.com/doc/refman/5.0/en/… -
@pala_ 是的,你是对的,我检查了 strlen($name),它说 1024
标签: php mysql group-concat