【问题标题】:MySql GROUP_CONCAT failing when exporting from phpmyadmin从 phpmyadmin 导出时 MySql GROUP_CONCAT 失败
【发布时间】:2012-04-27 17:10:09
【问题描述】:

当我使用group_concat 测试查询时,它可以正常工作并在行中输出正确的逗号分隔列表。但是,当我然后单击结果集底部的“导出”时,我收到一条错误消息 #1630 - FUNCTION <databasename>.group_concat does not exist.

似乎将对GROUP_CONCAT 的引用视为用户定义的函数。有没有办法正确限定函数名称,以便在导出时找到它?在不尝试使用group_concat 之前,我没有遇到导出问题。

这里是查询:

SELECT *, group_concat(distinct g.name) FROM `users` u
left join usergroupassoc a on u.userid = a.userid
left join usergroups g on a.usergroupid = g.usergroupid
where u.enddate is null and g.enddate is null group by u.userid

【问题讨论】:

  • 它似乎对group_concat 和左括号之间的间距很敏感。您能否验证您正在运行的实际查询中没有空格?来源:dreamincode.net/forums/topic/247573-distinct
  • 这是一种可能性——我认为 phpmyadmin 在将查询传递给 MySql 之前正在对其进行转换。虽然它似乎没有在左括号前放置一个空格,但也许它正在做其他 MySql 不喜欢的事情。
  • 您是否尝试过调查 MySQL 常规查询日志以确切了解 PHPMyAdmin 正在执行什么查询?
  • 不错的主意。我会调查的。
  • 是的。它确实在左括号之前插入了一个空格。臭虫。这可能只是我正在使用且无法更改的旧版 PhpMyAdmin 中的一个错误。啊。

标签: mysql sql phpmyadmin group-concat


【解决方案1】:

group_concat 使用逗号作为默认分隔符,这可能会阻止 phpmyadmin 正确生成您的导出文件。

尝试将分号指定为 group_concat 分隔符:

SELECT *, group_concat(distinct g.name SEPARATOR ';') FROM `users` u
left join usergroupassoc a on u.userid = a.userid
left join usergroups g on a.usergroupid = g.usergroupid
where u.enddate is null and g.enddate is null group by u.userid;

【讨论】:

    猜你喜欢
    • 2017-12-04
    • 2022-06-16
    • 2022-08-02
    • 2014-02-01
    • 1970-01-01
    • 2014-02-03
    • 2012-06-04
    • 2014-05-11
    • 2017-01-05
    相关资源
    最近更新 更多