Агрегатная функция GROUP_CONCAT в MySQL

#mysql #group-concat

#mysql #объединение групп

Вопрос:

Я использую функцию MySQL GROUP_CONCAT — это агрегатная функция, которая объединяет строки из группы в одну строку с различными вариантами для этого возврата

 '31A', '31C', '32B', '32D', '52G'
 

Это и есть запрос:

 SELECT 
  GROUP_CONCAT( DISTINCT CONCAT( '''', xCOD ) ORDER BY xCOD ASC SEPARATOR ''' , ' ) AS x_group 
FROM `xtbl`
ORDER BY xCod ASC;
 

Это возвращает:

 '31A', '31C', '32B', '32D', '52G
 

Но при возврате последний элемент функции MySQL GROUP_CONCAT не имеет одинарной кавычки

Как это сделать, чтобы решить эту проблему?

Комментарии:

1. В чем ваш вопрос? Здесь ее нет, что делает ваш пост действительно неясным.

2. @GMB спасибо, не могу добавить по этому вопросу код моего запроса. Отправленный вопрос с ошибкой. Я добавил изображение кода запроса… Произошла ошибка при отправке правки.

3. Вы всегда можете добавить цитату, если она вам нужна, в конце, используя CONCAT() .

4. @IterLsicIealf Не публикует изображение . Опубликуйте свой запрос (и результаты) в виде текста .

5. @RocketHazmat Спасибо, я не могу добавить к этому вопросу код моего запроса. Отправленный вопрос с ошибкой. Я добавил изображение кода запроса.. Произошла ошибка при отправке редактирования.

Ответ №1:

Если вы хотите заключить каждое значение в кавычки, то вы можете просто использовать CONCAT для этого.

 SELECT 
  GROUP_CONCAT(DISTINCT CONCAT("'", xCOD, "'") ORDER BY xCOD ASC SEPARATOR ", ") AS x_group 
FROM `xtbl`
ORDER BY xCod ASC;
 

На самом деле, вам даже не нужно CONCAT здесь вообще. Вы можете просто сделать:

 SELECT 
  GROUP_CONCAT(DISTINCT "'", xCOD, "'" ORDER BY xCOD ASC SEPARATOR ", ") AS x_group 
FROM `xtbl`
ORDER BY xCod ASC;