MySQL объединяет строки, GROUP_CONCAT стоит иметь

задняя часть MySQL
MySQL объединяет строки, GROUP_CONCAT стоит иметь

предыдущий постОбновите таблицы и убедитесь, что написанный вами SQL выглядит как дурак.Писал про кросс-табличные обновления. Год пролетел быстро, и двое поздних сотрудников в статье馮大и馮二Им также приходится сталкиваться с безжалостной оценкой KPI, они хорошо поработали, и их показатели равны 4 и 5 соответственно.

Грядут новые требования, тихонько! ! ! Ведущий хочет видеть, кто находится под каждым выступлением, и при этом требует, чтобы имена этих людей были склеены в строку с запятыми, то есть должны получиться следующие результаты:

Как выполнить конкатенацию строк в указанный столбец в наборе результатов? Главный герой сияет ✨

GROUP_CONCAT(expr)

существуетОфициальная документация MySQL, эта функция помещена в главу агрегатных функций.Если вы хотите сгруппировать и соединить в соответствии с указанным полем, вы должны сопоставить ключевое словоGROUP BYиспользовать

определение

Эта функция возвращает строковый результат, последовательно соединенный пакетами.非NULL值. Возвращает NULL, если нет значений, отличных от NULL. Полный синтаксис выглядит следующим образом:

GROUP_CONCAT([DISTINCT] expr [,expr ...]
             [ORDER BY {unsigned_integer | col_name | expr}
                 [ASC | DESC] [,col_name ...]]
             [SEPARATOR str_val])

Что? Этот синтаксис выглядит слишком сложным, не волнуйтесь, ниже будут использоваться примеры, чтобы медленно объяснять проверку один за другим.

Случаи применения

Сначала выполните требования в начале статьи:

SELECT performance, GROUP_CONCAT(employee_name) AS employees
FROM employees
GROUP BY performance;

zou это результат:

На этом требование лидера выполнено😜

Keguan, пожалуйста, оставайтесь, не в еде еще не закончили ......

Мы международная команда, наш родной город по всему миру

Если руководитель хочет позаботиться о сотрудниках, ему следует проверить родной город всех сотрудников компании. Сотрудники могут быть из одного и того же места, поэтому для дедупликации результирующего набораDISTINCTКлючевые слова пригодятся

SELECT GROUP_CONCAT(DISTINCT home_town)
FROM employees;

Проверьте результаты:

Забота вождей распространяется по всему миру...

Копирайтинг будет изменен, а забота руководства повсюду四海五湖, ПотомORDER BYКлючевые слова пригодятся

SELECT GROUP_CONCAT(DISTINCT home_town ORDER BY home_town DESC) AS '领导关怀地区'
FROM employees;

-- 没我这么起变量的哈,还是汉语,我看你是疯了

вот видишьGROUP_CONCATРазделителем по умолчанию для строк конкатенации функций являются запятые.,, Лидер недоволен, и в чувствах запятые нужно использовать ❕, чтобы отразить интенсивность заботы,SEPARATORКлючевые слова пригодятся

Разделителем по умолчанию между сгруппированными конкатенированными значениями является запятая (,). Чтобы указать разделитель явно, вам нужно использоватьSEPARATORКлючевое слово, а затем разделитель, который вы хотите установить. Полностью удалить разделитель, только вSEPARATORПросто напишите '' после ключевого слова

SELECT GROUP_CONCAT(DISTINCT home_town ORDER BY home_town DESC SEPARATOR '!') AS '领导关怀地区'
FROM employees;

SELECT GROUP_CONCAT(DISTINCT home_town SEPARATOR '') AS '领导关怀地区'
FROM employees;

Эта забота на месте, ты пробуй, ты внимательно пробуй! ! !

Заботливая способность руководства также ограничена,Максимальная длина объединенной строки по умолчанию составляет 1024 символа., вы можете проверить текущий лимит с помощью следующего оператора:

show variables like 'group_concat_max_len';

Способность к лидерству непостоянна, поэтому мы можем гибко устанавливать это значение

SET [GLOBAL | SESSION] group_concat_max_len = val;
  • SESSION: эффект на текущий диалог
  • GLOBAL: действует глобально

После выполнения инструкции она будет работать до тех пор, пока MySQL не перезапустится, после перезапуска MySQL будет восстановлено значение по умолчанию.

иногдаGROUP_CONCAT()также соответствуютCONCAT_WS()Поиграй немного в силу, приведи простой пример

Разделите имя и фамилию потребителя, затем используйте;разделять

SELECT
    GROUP_CONCAT(
       CONCAT_WS(', ', contactLastName, contactFirstName)
       SEPARATOR ';')
FROM
    customers;

вотИспользование функции CONCAT_WS(), очень просто, проверьте сами...

Внимание ⚠️

Функция GROUP_CONCAT() возвращает одну строку, а не список значений. Это означает, что мы не можем использовать результат функции GROUP_CONCAT() в операторе IN, например, в подзапросе, например:

SELECT
    id, name
FROM
    table_name
WHERE
    id IN GROUP_CONCAT(id);

Суммировать

Во многих случаях мы можем использовать функцию group_concat () для получения полезных результатов, а также могут играть большую мощность в сочетании с другими функциями.Изучение отдельных трюков, вы должны научиться подключать Combo.

  • Если вы просто знаете этот пункт знаний, как и я, пожалуйста, нажмите «Просмотр».
  • Если вы уже знакомы с этим педиатрическим контентом, оставьте сообщение и отправьте «бу».

вопрос души

  1. Каковы ограничения объединения агрегатных функций с группировкой?

  2. Какие еще операции с агрегатными функциями вы можете сразу придумать, кроме суммы?


Личный блог: https://dayarch.top

добавь меня в чат друга, Войдите в группу для развлечения, обучения и обмена и отметьте «войти в группу».

Добро пожаловать, чтобы продолжать обращать внимание на общественный номер: «Сун Гун И Бин».

  • Передовая технология Java для обмена галантереей
  • Резюме эффективных инструментов | Ответ на «Инструменты»
  • Анализ вопроса интервью и ответ
  • Сбор технических данных | Ответ на «данные»

Узнайте о стеке технологий Java легко и весело, думая о чтении детективных романов, и постепенно разлагайте технические проблемы, основываясь на принципах упрощения сложных проблем, конкретизации абстрактных проблем и графики.Технология постоянно обновляется, пожалуйста, продолжайте платить внимание...