【问题标题】:using group_concat in PHPMYADMIN will show the result as [BLOB - 3B]在 PHPMYADMIN 中使用 group_concat 将结果显示为 [BLOB - 3B]
【发布时间】:2011-01-09 04:31:21
【问题描述】:

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

查询是

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

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

我应该添加什么才能看到实际结果?

【问题讨论】:

    标签: mysql casting phpmyadmin group-by group-concat


    【解决方案1】:

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

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

    如果您对此仍有疑问,我想分享一下。

    【讨论】:

      【解决方案2】:

      According to the MySQL documentationCAST(expr AS type) 是标准 SQL,因此应优先使用。此外,您可以省略字符串长度。因此,我建议如下:

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

      【讨论】:

        【解决方案3】:

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

        显示 BLOB 内容

        【讨论】:

        • 只是为了帮助看不到+options的用户,不是所有phpmyadmin的配置都有
        【解决方案4】:

        如果您可以访问 phpMyAdmin 目录中的 config.inc.php 文件,那么 我认为最好的解决方案是改变这一行:

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

        到这里:

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

        如果您有可用的 mysqli 扩展,请使用它。它更安全,更优化,默认情况下它更好地处理 utf-8 的 BLOB 类型。您的 [BLOB] 条目应该开始显示为它们的值,而无需添加任何其他特殊配置选项。

        【讨论】:

          【解决方案5】:

          对我来说,这很有帮助(在 blog post 中找到):

          在我的情况下,GROUP_CONCAT 的参数是字符串,但该函数仍然导致 BLOB,但转换 GROUP_CONCAT 的结果有效。

          CONVERT(GROUP_CONCAT(user_id) USING 'utf8')
          

          【讨论】:

          • 谢谢珍妮。很好的解决方案。
          • 这对我有帮助 :) 谢谢 Janne
          • 我想拥抱你并踢出设计我使用'latin1'编码的数据库的人。谢谢。
          【解决方案6】:

          你可以这样做:

          set session group_concat_max_len = 512;
          

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

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

          【讨论】:

            【解决方案7】:

            在最新的 Phpmyadmin 中

            运行查询后,你会看到一些结果,然后点..

            所以只需点击选项(位于查询结果的顶部)

            然后选择

            全文

            单选按钮,默认为部分文字

            然后按开始按钮,你会看到完整的结果

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-11-18
              • 2012-04-03
              • 1970-01-01
              • 2015-08-31
              • 2020-01-13
              • 2022-12-06
              • 2016-03-22
              相关资源
              最近更新 更多