using group_concat in PHPMYADMIN will show the res

2019-01-13 05:04发布

I have a query which uses the GROUP_CONCAT of mysql on an integer field.
I am using PHPMYADMIN to develop this query. My problem that instead of showing 1,2 which is the result of the concatenated field, I get [BLOB - 3B].

Query is

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

(both fields are unsigned int, both are not unique)

What should I add to see the actual results?

6条回答
一纸荒年 Trace。
2楼-- · 2019-01-13 05:46

You can do this:

set session group_concat_max_len = 512;

If group_concat_max_len is more than 512 the query will return byte[]. But you can pass to a string.

System.Text.Encoding.Default.GetString((byte[])DataTable.Rows[0][0]);
查看更多
在下西门庆
3楼-- · 2019-01-13 05:47

Looks as though GROUP_CONCAT expects that value to be a string. I just ran into the same problem. Solved it by converting the int column to a string like so:

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

Figured I'd share in case you were still having an issue with this.

查看更多
时光不老,我们不散
4楼-- · 2019-01-13 05:47

Just above the query result (to the left) you will see +options. Press it and mark

Show BLOB contents

查看更多
来,给爷笑一个
5楼-- · 2019-01-13 05:55

For me, this helped (found it in this blog post):

In my case the parameter to GROUP_CONCAT was string but the function still resulted in a BLOB, but converting the result of the GROUP_CONCAT worked.

CONVERT(GROUP_CONCAT(user_id) USING 'utf8')
查看更多
再贱就再见
6楼-- · 2019-01-13 05:58

According to the MySQL documentation, CAST(expr AS type) is standard SQL and should thus be perferred. Also, you may omit the string length. Therefore, I’d suggest the following:

SELECT rec_id, GROUP_CONCAT(CAST(user_id AS CHAR))
FROM t1
GROUP BY rec_id
查看更多
放我归山
7楼-- · 2019-01-13 06:06

If you have access to the config.inc.php file in the phpMyAdmin directory, then I think the best solution is to change this line:

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

to this:

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

If you have the mysqli extension available, use it. It is more secure, a bit more optimized, and it handles the BLOB type of utf-8 better by default. Your [BLOB] entries should start showing up as their values without having to add in any other special configuration options.

查看更多
登录 后发表回答