предыдущий постОбновите таблицы и убедитесь, что написанный вами 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.
- Если вы просто знаете этот пункт знаний, как и я, пожалуйста, нажмите «Просмотр».
- Если вы уже знакомы с этим педиатрическим контентом, оставьте сообщение и отправьте «бу».
вопрос души
-
Каковы ограничения объединения агрегатных функций с группировкой?
-
Какие еще операции с агрегатными функциями вы можете сразу придумать, кроме суммы?
Личный блог: https://dayarch.top
добавь меня в чат друга, Войдите в группу для развлечения, обучения и обмена и отметьте «войти в группу».
Добро пожаловать, чтобы продолжать обращать внимание на общественный номер: «Сун Гун И Бин».
- Передовая технология Java для обмена галантереей
- Резюме эффективных инструментов | Ответ на «Инструменты»
- Анализ вопроса интервью и ответ
- Сбор технических данных | Ответ на «данные»
Узнайте о стеке технологий Java легко и весело, думая о чтении детективных романов, и постепенно разлагайте технические проблемы, основываясь на принципах упрощения сложных проблем, конкретизации абстрактных проблем и графики.Технология постоянно обновляется, пожалуйста, продолжайте платить внимание...