MySQL GROUP_CONCAT with Limit
Robert Cooper
Robert CooperSenior Software Engineer · January 31, 2025

Robert Cooper
Robert CooperSenior Software Engineer · January 31, 2025

MySQL’s GROUP_CONCAT function concatenates values from a group into a single string. However, managing the number of concatenated items is essential, especially when dealing with large datasets. This guide explains how to use GROUP_CONCAT with a limit, enabling more controlled and efficient data aggregation.
GROUP_CONCAT aggregates string data from multiple rows into a single string. It’s often used with GROUP BY to concatenate values belonging to the same group.
SELECT category, GROUP_CONCAT(product_name)
FROM products
GROUP BY category;
To limit the number of items concatenated, use the LIMIT clause within the SUBSTRING_INDEX function.
SELECT category,
GROUP_CONCAT(SUBSTRING_INDEX(product_name, ',', 5))
FROM products
GROUP BY category;
Besides limiting items, GROUP_CONCAT allows defining a custom separator using the SEPARATOR keyword.
SELECT category,
GROUP_CONCAT(product_name SEPARATOR '; ')
FROM products
GROUP BY category;
GROUP_CONCAT ignores NULL values by default. To include them, use IFNULL or COALESCE.
SELECT category,
GROUP_CONCAT(IFNULL(product_name, 'No Name'))
FROM products
GROUP BY category;
Order elements inside GROUP_CONCAT using the ORDER BY clause for finer control over the concatenated string.
SELECT category,
GROUP_CONCAT(product_name ORDER BY product_name)
FROM products
GROUP BY category;
GROUP_CONCAT has a default length limit. To change it, adjust the group_concat_max_len system variable.
SET SESSION group_concat_max_len = 10000;
In scenarios where readability is crucial, limiting the number of concatenated items prevents overly long strings.
SELECT category,
GROUP_CONCAT(SUBSTRING_INDEX(product_name, ',', 3))
FROM products
GROUP BY category;
This guide covered how to use MySQL’s GROUP_CONCAT function with a limit to create more efficient and manageable queries. Understanding these techniques is crucial for optimizing SQL queries and handling large datasets effectively.
Written by
Senior Software Engineer
Robert Cooper is a senior engineer who builds full-stack product systems across SQL data infrastructure, APIs, and frontend architecture. His work focuses on application performance, developer velocity, and reliable self-hosted workflows that make data operations easier for teams at scale.
Basedash lets you build charts, dashboards, and reports in seconds using all your data.