sql >> Base de Datos >  >> RDS >> MariaDB

Convierta los resultados de la consulta en una lista separada por comas en MariaDB

En MariaDB, podemos usar el GROUP_CONCAT() para devolver los resultados de nuestra consulta como una lista separada por comas. Con eso quiero decir, para una columna dada, podemos convertir todas las filas en una sola fila que contiene una lista separada por comas de los valores que componen esa columna. Cada fila es un elemento separado en la lista.

Ejemplo

Supongamos que ejecutamos la siguiente consulta:

SELECT meal 
FROM guest_meals;

Resultado:

+---------+
| meal    |
+---------+
| Salad   |
| Fish    |
| Burrito |
| Pasta   |
| Salad   |
| Salad   |
+---------+
6 rows in set (0.001 sec)

Esa consulta resultó en seis filas.

Podemos convertir esas filas en una fila separada por comas como esta:

SELECT GROUP_CONCAT(meal) 
FROM guest_meals;

Resultado:

+--------------------------------------+
| GROUP_CONCAT(meal)                   |
+--------------------------------------+
| Salad,Fish,Burrito,Pasta,Salad,Salad |
+--------------------------------------+
1 row in set (0.003 sec)

Cambiar el delimitador

Podemos especificar nuestro propio separador pasándolo a la función, con el prefijo SEPARATOR palabra clave:

SELECT GROUP_CONCAT(meal SEPARATOR ' + ') 
FROM guest_meals;

Resultado:

Salad + Fish + Burrito + Pasta + Salad + Salad

Ordenar los resultados

Podemos ordenar los resultados usando un ORDER BY cláusula en la función:

SELECT GROUP_CONCAT(meal ORDER BY meal ASC) 
FROM guest_meals;

Resultado:

Burrito,Fish,Pasta,Salad,Salad,Salad

Devolver solo valores únicos

Podemos usar un DISTINCT cláusula para devolver solo valores únicos:

SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC) 
FROM guest_meals;

Resultado:

Burrito,Fish,Pasta,Salad

Limitar los resultados

Podemos usar un LIMIT cláusula para limitar el número de elementos en la lista:

SELECT GROUP_CONCAT(DISTINCT meal ORDER BY meal ASC LIMIT 3) 
FROM guest_meals;

Resultado:

Burrito,Fish,Pasta

Consultas agrupadas

El GROUP_CONCAT() La función puede ser útil cuando se ejecutan consultas agrupadas. Ver MariaDB GROUP_CONCAT() para un ejemplo.