在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选项。