Saltar al contenido

Cómo deshabilitar only_full_group_by en MySQL o Sequelize

Después de buscar en varios repositorios y sitios webs finalmente nos encontramos con la respuesta que te mostramos a continuación.

Solución:

Obtenga el sql_mode existente y elimine solo el ONLY_FULL_GROUP_BY valor en lugar de hacerlo completamente vacío.

SELECT @@sql_mode; -- Get the current sql_mode

Puede obtener un resultado de la siguiente manera;

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

Ahora quita el ONLY_FULL_GROUP_BY del resultado y actualice el sql_mode

SET GLOBAL sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";
SET SESSION sql_mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

Ahora ya terminaste.

Tenga en cuenta que SET GLOBAL es para actualizar la configuración global que no tendrá efecto hasta que reinicie el servidor o servicio mysql. SET SESSION tendrá este efecto inmediatamente en su sesión actual incluso sin reiniciar el servidor mysql. Por lo tanto, puede usar uno o ambos según sus requisitos.

Alternativamente, en lugar de deshabilitar esta configuración, desde MySQL 5.7 en adelante, simplemente puede modificar la consulta usando ANY_VALUE función en cualquiera que sea el campo que arroja un error. Por ejemplo ANY_VALUE(assets.group_id) como se menciona en el mensaje de error que ha publicado.

Prueba esto:

SET GLOBAL sql_mode = '';

Calificaciones y reseñas

Si haces scroll puedes encontrar las observaciones de otros usuarios, tú asimismo tienes la opción de dejar el tuyo si te gusta.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *