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

前端 未结 7 1192
傲寒
傲寒 2020-12-04 16:43

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

相关标签:
7条回答
  • 2020-12-04 16:49

    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

    0 讨论(0)
  • 2020-12-04 16:51

    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.

    0 讨论(0)
  • 2020-12-04 16:52

    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')
    
    0 讨论(0)
  • 2020-12-04 16: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
    
    0 讨论(0)
  • 2020-12-04 16:59

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

    Show BLOB contents

    0 讨论(0)
  • 2020-12-04 17:04

    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]);
    
    0 讨论(0)
提交回复
热议问题