He actualizado mi sistema e instalado MySql 5.7.9 con php para una aplicación web en la que estoy trabajando. Tengo una consulta que se crea dinámicamente, y cuando se ejecuta en versiones anteriores de MySql funciona bien. Desde la actualización a 5.7 me sale este error:
La expresión # 1 de la lista SELECT no está en la cláusula GROUP BY y contiene la columna no agregada 'support_desk.mod_users_groups.group_id' que no depende funcionalmente de las columnas en la cláusula GROUP BY; esto es incompatible con sql_mode = only_full_group_by
Tenga en cuenta la página del Manual para Mysql 5.7 sobre el tema de los modos SQL del servidor .
Esta es la consulta que me está dando problemas:
SELECT mod_users_groups.group_id AS 'value',
group_name AS 'text'
FROM mod_users_groups
LEFT JOIN mod_users_data ON mod_users_groups.group_id = mod_users_data.group_id
WHERE mod_users_groups.active = 1
AND mod_users_groups.department_id = 1
AND mod_users_groups.manage_work_orders = 1
AND group_name != 'root'
AND group_name != 'superuser'
GROUP BY group_name
HAVING COUNT(`user_id`) > 0
ORDER BY group_name
Busqué en Google sobre el tema, pero no entiendo lo only_full_group_by
suficiente como para descubrir qué necesito hacer para solucionar la consulta. ¿Puedo desactivar la only_full_group_by
opción o hay algo más que deba hacer?
Déjeme saber si usted necesita más información.
not a GROUP BY expression
" Eso es. También podrían tener un código de error numérico y ningún mensaje.