2012-04-27 3 views
6

Когда я тестирую запрос с использованием group_concat, он отлично работает и выводит соответствующий список с разделителями-запятыми в строке. Однако, когда я затем нажимаю «Экспорт» в нижней части результирующего набора, я получаю сообщение об ошибке #1630 - FUNCTION <databasename>.group_concat does not exist.MySql GROUP_CONCAT сбой при экспорте из phpmyadmin

Он, как представляется, обрабатывает ссылку на 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 
+0

вы можете оставить запрос? –

+4

Кажется, он чувствителен к расстоянию между 'group_concat' и открывающей скобкой. Можете ли вы проверить, нет ли там пробелов в текущем запросе, который вы выполняли? Источник: http://www.dreamincode.net/forums/topic/247573-distinct/ – mellamokb

+0

Это возможность - я думаю, что phpmyadmin преобразует запрос, прежде чем передавать его на MySql. Кажется, он не помещает пробел перед открывающей скобкой, но, возможно, он делает что-то еще, что не нравится MySql. – devios1

ответ

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; 
Смежные вопросы