在PHPMYADMIN中使用group_concat会显示结果为

我有一个查询在整数字段上使用mysql的GROUP_CONCAT。
我正在使用PHPMYADMIN来开发这个查询。 我的问题,而不是显示1,2这是连接字段的结果,我得到[BLOB – 3B]。

查询是

SELECT rec_id,GROUP_CONCAT(user_id) FROM t1 GROUP BY rec_id 

(两个字段都是无符号整数,都不是唯一的)

我应该添加什么来查看实际结果?

看起来好像GROUP_CONCAT期望值是一个string。 我遇到了同样的问题。 通过将int列转换为像这样的string来解决它:

 SELECT rec_id,GROUP_CONCAT(CONVERT(user_id, CHAR(8))) FROM t1 GROUP BY rec_id 

我想分享一下,如果你仍然有这个问题。

根据MySQL文档 , CAST(expr AS type)是标准的SQL,因此应该被优先考虑。 另外,您可以省略string长度。 因此,我build议如下:

 SELECT rec_id, GROUP_CONCAT(CAST(user_id AS CHAR)) FROM t1 GROUP BY rec_id 

对我来说,这有助于(在这篇博客中find它):

在我的情况下,参数GROUP_CONCAT是string,但该函数仍然导致一个BLOB,但转换的结果GROUP_CONCAT工作。

 CONVERT(GROUP_CONCAT(user_id) USING 'utf8') 

在查询结果上方(左侧),您将看到+options 。 按下并标记

显示BLOB内容

你可以这样做:

 set session group_concat_max_len = 512; 

如果group_concat_max_len大于512,查询将返回byte []。 但是你可以传递给一个string。

 System.Text.Encoding.Default.GetString((byte[])DataTable.Rows[0][0]); 

如果你有权访问phpMyAdmin目录中的config.inc.php文件,那么我认为最好的解决办法是改变这一行:

 $ cfg ['Servers'] [$ i] ['extension'] ='mysql';

对此:

 $ cfg ['Servers'] [$ i] ['extension'] ='mysqli';

如果你有mysqli扩展可用,使用它。 它更安全,更加优化,并且默认情况下它更好地处理了utf-8的BLOBtypes。 您的[BLOB]条目应该开始显示为其值,而不必添加任何其他特殊configuration选项。