根据这篇帖子:有关CONCAT的帖子,我的问题是我有很多行需要
CONCAT
成一行。例如,如果我有10行字符串,每行大约50个字符,我的查询结果只会显示6-7行,类似于这样的情况。我在Stack和Google上搜索后发现,我可以通过命令SET group_concat_max_len := @@max_allowed_packet
来更改CONCAT的最大长度。我做错了什么吗?
编辑:当我运行SHOW VARIABLES LIKE 'group_concat_max_len'
时,它显示1024。Mysql版本为5.0.96-log。表类型为MyISAM。看起来它没有任何限制,我尝试选择一个简单的varchar,它有2000个字符,看起来还不错。我有3个表:第一个是具有ItemID的“项目”表,第二个是具有ItemID和DescriptionID的“Descriptionpack”表,第三个是具有DescriptionID的“Description”表。Select
DISTINCT Item.ItemID as item
,GROUP_CONCAT(Description.DescriptionID) AS description
From Item
LEFT OUTER JOIN descriptionpack
on Item.ItemID=descriptionpack.ItemID
LEFT OUTER JOIN description
on descriptionpack.descriptionID=description.descriptionID
GROUP BY item
编辑2: 我想我找到了问题所在,我向提供商解释了我的问题,他们回答我说:
我已经与我们的主机团队审查了您的问题。您将无法更改该变量以及其他变量的全局设置。但是,您应该能够在设置其他查询之前先设置每个会话基础上的该变量。希望这有所帮助。
现在的问题是如何实现。