Cómo arreglar el grupo de consulta con only_full_group_by
Tengo una tabla básica de valores clave, que contiene algunos datos para cada usuario. Con el mysql actualizado tiene elsql_mode
ajustado aonly_full_group_by
(nuevo valor predeterminado) cuando hace un grupo por. Cuando intento ejecutar esta consulta simple:
select * from user_features
where user_id = 1
group by feature_key
Obtuve el siguiente error:
Error de SQL (1055): la expresión # 1 de la lista SELECT no está en la cláusula GROUP BY y contiene la columna no agregada 'date.user_features.user_id' que no depende funcionalmente de las columnas en la cláusula GROUP BY; esto es incompatible con sql_mode = only_full_group_by
Con este ejemplo de datos, quiero agrupar en función defeature_key
(Agregaré ungroup_concat
una vez que se corrige el error del grupo).
| user_id | feature_key | feature_value |
+---------+-------------+---------------+
| 1 | color | red |
+---------+-------------+---------------+
| 1 | age | 15 |
+---------+-------------+---------------+
| 1 | color | blue |
+---------+-------------+---------------+
La tabla se ve así:
CREATE TABLE `user_features` (
`user_id` int(10) unsigned NOT NULL,
`feature_key` varchar(50) NOT NULL,
`feature_value` varchar(50) NOT NULL,
UNIQUE KEY `user_id_feature_key_feature_value` (`user_id`,`feature_key`,`feature_value`)
)
¿Qué consulta puedo ejecutar para solucionar esto o qué índice (s) debo agregar?