using group_concat in PHPMYADMIN will show the result as [BLOB - 3B]

MysqlCastingPhpmyadminGroup ByGroup Concat

Mysql Problem Overview


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?

Mysql Solutions


Solution 1 - Mysql

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.

Solution 2 - Mysql

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

Solution 3 - Mysql

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')

Solution 4 - Mysql

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

> Show BLOB contents

> Full texts

enter image description here

Solution 5 - Mysql

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]);

Solution 6 - Mysql

In the latest Phpmyadmin

After running query, you will see some results and then dot ..

so just click on options (which is on top of the query result)

Then Just select

> Full texts

radio button, default is Partial texts

Then press Go button and you will see full result

Solution 7 - Mysql

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionItay Moav -MalimovkaView Question on Stackoverflow
Solution 1 - MysqlmunchView Answer on Stackoverflow
Solution 2 - MysqlscyView Answer on Stackoverflow
Solution 3 - MysqlJanneView Answer on Stackoverflow
Solution 4 - MysqlItay Moav -MalimovkaView Answer on Stackoverflow
Solution 5 - MysqlJoeView Answer on Stackoverflow
Solution 6 - MysqlDevsi OdedraView Answer on Stackoverflow
Solution 7 - MysqlcwdView Answer on Stackoverflow